src/intops/impl/intrinsics/x86

Source   Edit  

Intel/AMD intrinsics-based implementations of arithmetic operations for integers.

Procs

func borrowingSub(a, b: uint32; borrowIn: bool): (uint32, bool) {.inline,
    noinit, ...raises: [], tags: [], forbids: [].}
Source   Edit  
func borrowingSub(a, b: uint64; borrowIn: bool): (uint64, bool) {.inline,
    noinit, inline, noinit, ...raises: [], tags: [], forbids: [].}
Source   Edit  
func builtinBorrowingSub(borrowIn: uint8; a, b: uint32; res: var uint32): uint8 {.
    importc: "_subborrow_u32", header: "<x86intrin.h>", nodecl, ...raises: [],
    tags: [], forbids: [].}
Source   Edit  
func builtinBorrowingSub(borrowIn: uint8; a, b: uint64; res: var uint64): uint8 {.
    importc: "_subborrow_u64", header: "<x86intrin.h>", nodecl, inline, noinit,
    inline, noinit, ...raises: [], tags: [], forbids: [].}
Source   Edit  
func builtinCarryingAdd(carryIn: uint8; a, b: uint32; res: var uint32): uint8 {.
    importc: "_addcarry_u32", header: "<x86intrin.h>", nodecl, ...raises: [],
    tags: [], forbids: [].}
Source   Edit  
func builtinCarryingAdd(carryIn: uint8; a, b: uint64; res: var uint64): uint8 {.
    importc: "_addcarry_u64", header: "<x86intrin.h>", nodecl, inline, noinit,
    inline, noinit, ...raises: [], tags: [], forbids: [].}
Source   Edit  
func builtinNarrowingDiv(uHi, uLo, v: uint64; r: var uint64): uint64 {.
    importc: "_udiv128", header: "<x86intrin.h>", nodecl, inline, noinit,
    inline, noinit, ...raises: [], tags: [], forbids: [].}
Source   Edit  
func carryingAdd(a, b: uint32; carryIn: bool): (uint32, bool) {.inline, noinit,
    ...raises: [], tags: [], forbids: [].}
Source   Edit  
func carryingAdd(a, b: uint64; carryIn: bool): (uint64, bool) {.inline, noinit,
    inline, noinit, ...raises: [], tags: [], forbids: [].}
Source   Edit  
func narrowingDiv(uHi, uLo, v: uint64): (uint64, uint64) {.inline, noinit,
    inline, noinit, ...raises: [], tags: [], forbids: [].}
Source   Edit