This opens up for 128 bit binary operations. The max size for integer values is still 64 bit but loaded as a float 128. ADD, SUB, MUL, DIV is added for binary 128.
float 128:
+, -, *, /, EQ, NE, LT, LE, GT, GE
binary 128:
ADD, SUB, MUL, DIV, MOD, NOT, SAL, SHL, SAR, SHR, AND, OR, XOR
Manipulating float using binary operators:
sqrt_approx macro f
local x
x = f sub 00010000000000000000000000000000r
x = x shr 1
x = x add 20000000000000000000000000000000r
exitm<x>
endm
Get sign:
sign = f and 80000000000000000000000000000000r
sign = f shr 127
sign = high64( f ) shr 63