Int64
Int64 implements basic arithmetic for 64-bit integers based on machine code (hence the function signatures are also in machine code style). Furthermore, Int64 offers the constructor int64@
for Int64 objects, but mk64 expects a pointer, not a handle.
Dependencies
N/A
Initialization
N/A
Implementation
Functions
mk64
Writes lo
and hi
in one place (dest). Makes Int64, hi
has to be -1
for negative 32bit lo
.
var int dest
A pointer to an Int64 object or just 8 bytes of free memory.var int hi
High part of integer.var int lo
Low part of integer.
Examples
Function looks like that:
9876543210
low part should be set to 1286608618
and the high part to 2
neg64
Negates the integer: *dest <- -(*dest)
var int dest
A pointer to an Int64 object or just 8 bytes of free memory.
add64
Adds src
to dest
: *dest <- *dest + *src
var int dest
A pointer to an Int64 object or just 8 bytes of free memory. Will be changed.var int src
A pointer to an Int64 object. Will not change.
sub64
Subtracts src
from dest
: *dest <- *dest - *src
var int dest
A pointer to an Int64 object or just 8 bytes of free memory. Will be changed.var int src
A pointer to an Int64 object. Will not change.
mul64
Multiplies dest
by src
: *dest <- (*dest) * (*src)
var int dest
A pointer to an Int64 object or just 8 bytes of free memory. Will be changed.var int src
A pointer to an Int64 object. Will not change.
div64
Divides dest
by src
: *dest <- *dest / *src
var int dest
A pointer to an Int64 object or just 8 bytes of free memory. Will be changed.var int src
A pointer to an Int64 object. Will not change.