]> gitweb.factorcode.org Git - factor.git/commitdiff
Added vm ptr to math overflow functions
authorPhil Dawes <phil@phildawes.net>
Fri, 4 Sep 2009 18:24:30 +0000 (19:24 +0100)
committerPhil Dawes <phil@phildawes.net>
Wed, 16 Sep 2009 07:22:17 +0000 (08:22 +0100)
vm/math.cpp
vm/math.hpp

index 40a0c20a3b84298cd0ff6450bd4ea837433ef95b..fbb946e19f39487c17c4db08db8dab5b17f10d17 100755 (executable)
@@ -836,29 +836,29 @@ VM_C_API double to_double(cell value,factorvm *myvm)
 
 /* The fixnum+, fixnum- and fixnum* primitives are defined in cpu_*.S. On
 overflow, they call these functions. */
-void factorvm::overflow_fixnum_add(fixnum x, fixnum y)
+inline void factorvm::overflow_fixnum_add(fixnum x, fixnum y)
 {
        drepl(tag<bignum>(fixnum_to_bignum(
                untag_fixnum(x) + untag_fixnum(y))));
 }
 
-VM_ASM_API void overflow_fixnum_add(fixnum x, fixnum y)
+VM_ASM_API void overflow_fixnum_add(fixnum x, fixnum y, factorvm *myvm)
 {
        return PRIMITIVE_OVERFLOW_GETVM()->overflow_fixnum_add(x,y);
 }
 
-void factorvm::overflow_fixnum_subtract(fixnum x, fixnum y)
+inline void factorvm::overflow_fixnum_subtract(fixnum x, fixnum y)
 {
        drepl(tag<bignum>(fixnum_to_bignum(
                untag_fixnum(x) - untag_fixnum(y))));
 }
 
-VM_ASM_API void overflow_fixnum_subtract(fixnum x, fixnum y)
+VM_ASM_API void overflow_fixnum_subtract(fixnum x, fixnum y, factorvm *myvm)
 {
        return PRIMITIVE_OVERFLOW_GETVM()->overflow_fixnum_subtract(x,y);
 }
 
-void factorvm::overflow_fixnum_multiply(fixnum x, fixnum y)
+inline void factorvm::overflow_fixnum_multiply(fixnum x, fixnum y)
 {
        bignum *bx = fixnum_to_bignum(x);
        GC_BIGNUM(bx,this);
@@ -867,7 +867,7 @@ void factorvm::overflow_fixnum_multiply(fixnum x, fixnum y)
        drepl(tag<bignum>(bignum_multiply(bx,by)));
 }
 
-VM_ASM_API void overflow_fixnum_multiply(fixnum x, fixnum y)
+VM_ASM_API void overflow_fixnum_multiply(fixnum x, fixnum y, factorvm *myvm)
 {
        return PRIMITIVE_OVERFLOW_GETVM()->overflow_fixnum_multiply(x,y);
 }
index b45284f693b9d8774083ff9bfc593992d56d58a2..5183f85f450822960947e547e9d7f9b48d7b5335 100644 (file)
@@ -83,8 +83,8 @@ VM_C_API u64 to_unsigned_8(cell obj, factorvm *vm);
 VM_C_API fixnum to_fixnum(cell tagged, factorvm *vm);
 VM_C_API cell to_cell(cell tagged, factorvm *vm);
 
-VM_ASM_API void overflow_fixnum_add(fixnum x, fixnum y);
-VM_ASM_API void overflow_fixnum_subtract(fixnum x, fixnum y);
-VM_ASM_API void overflow_fixnum_multiply(fixnum x, fixnum y);
+VM_ASM_API void overflow_fixnum_add(fixnum x, fixnum y, factorvm *vm);
+VM_ASM_API void overflow_fixnum_subtract(fixnum x, fixnum y, factorvm *vm);
+VM_ASM_API void overflow_fixnum_multiply(fixnum x, fixnum y, factorvm *vm);
 
 }