Floating point behaviors are not supported natively on CairoVM. While there are myriad soft-float implementations out there, we need to implement such a thing with reasonable performance on Cairo. This should provide the following operations:
+
-
*
/
%
**
abs
shr
shl
Negate
Extend
divmod
cmp
This must result in an IEEE-754 64-bit float (double) compliant floating point implementation, and should behave as expected for real hardware and machine models. Note that this does not include the stateful behavior, as this is accounted for by the FPU (#48, #54).
This can also likely borrow some work from the 32 bit float implementation (#52).
Description
Floating point behaviors are not supported natively on CairoVM. While there are myriad soft-float implementations out there, we need to implement such a thing with reasonable performance on Cairo. This should provide the following operations:
+
-
*
/
%
**
abs
shr
shl
divmod
cmp
This must result in an IEEE-754 64-bit float (double) compliant floating point implementation, and should behave as expected for real hardware and machine models. Note that this does not include the stateful behavior, as this is accounted for by the FPU (#48, #54).
This can also likely borrow some work from the 32 bit float implementation (#52).