From 67ac514a3b4abf8ab3b0eb4c96744c8b40de5262 Mon Sep 17 00:00:00 2001 From: Phil Dawes Date: Fri, 4 Sep 2009 19:24:30 +0100 Subject: [PATCH] Added vm ptr to math overflow functions --- vm/math.cpp | 12 ++++++------ vm/math.hpp | 6 +++--- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/vm/math.cpp b/vm/math.cpp index 40a0c20a3b..fbb946e19f 100755 --- a/vm/math.cpp +++ b/vm/math.cpp @@ -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(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(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_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); } diff --git a/vm/math.hpp b/vm/math.hpp index b45284f693..5183f85f45 100644 --- a/vm/math.hpp +++ b/vm/math.hpp @@ -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); }