return x >> (WORD_SIZE - 1);
}
-inline fixnum sign_mask(fixnum x)
-{
- return vm->sign_mask(x);
-}
inline fixnum factorvm::branchless_max(fixnum x, fixnum y)
{
return (x - ((x - y) & sign_mask(x - y)));
}
-inline fixnum branchless_max(fixnum x, fixnum y)
-{
- return vm->branchless_max(x,y);
-}
inline fixnum factorvm::branchless_abs(fixnum x)
{
return (x ^ sign_mask(x)) - sign_mask(x);
}
-inline fixnum branchless_abs(fixnum x)
-{
- return vm->branchless_abs(x);
-}
inline void factorvm::vmprim_fixnum_shift()
{
return 0; /* can't happen */
}
-cell unbox_array_size()
-{
- return vm->unbox_array_size();
-}
inline void factorvm::vmprim_fixnum_to_float()
{
PRIMITIVE(bignum_log2);
PRIMITIVE(byte_array_to_bignum);
-cell unbox_array_size();
-
PRIMITIVE(fixnum_to_float);
PRIMITIVE(bignum_to_float);
PRIMITIVE(str_to_float);