* Added ratnum cases to binary*.

This commit is contained in:
Abdulaziz Ghuloum 2007-06-08 10:18:36 +03:00
parent b859c05bd6
commit 3798fd932a
3 changed files with 15 additions and 1 deletions

Binary file not shown.

View File

@ -188,6 +188,8 @@
(foreign-call "ikrt_fxbnmult" x y)]
[(flonum? y)
($fl* (fixnum->flonum x) y)]
[(ratnum? y)
(binary/ (binary* x ($ratnum-n y)) ($ratnum-d y))]
[else
(error '* "~s is not a number" y)])]
[(bignum? x)
@ -198,6 +200,8 @@
(foreign-call "ikrt_bnbnmult" x y)]
[(flonum? y)
($fl* (bignum->flonum x) y)]
[(ratnum? y)
(binary/ (binary* x ($ratnum-n y)) ($ratnum-d y))]
[else
(error '* "~s is not a number" y)])]
[(flonum? x)
@ -208,8 +212,15 @@
($fl* x (bignum->flonum y))]
[(flonum? y)
($fl* x y)]
[(ratnum? y)
(binary/ (binary* x ($ratnum-n y)) ($ratnum-d y))]
[else
(error '* "~s is not a number" y)])]
[(ratnum? y)
(if (ratnum? x)
(binary/ (binary* ($ratnum-n x) ($ratnum-n y))
(binary* ($ratnum-d x) ($ratnum-d y)))
(binary* y x))]
[else (error '* "~s is not a number" x)])))
(define +

View File

@ -1808,7 +1808,10 @@
[(move-byte)
(let ([s (set-rem d s)])
(set-for-each (lambda (y) (add-edge! g d y)) s)
(for-each (lambda (r) (add-edge! g d r)) non-8bit-registers)
(when (var? d)
(for-each (lambda (r) (add-edge! g d r)) non-8bit-registers))
(when (var? v)
(for-each (lambda (r) (add-edge! g v r)) non-8bit-registers))
(set-union (R v) s))]
[(int-/overflow int+/overflow int*/overflow)
(unless (exception-live-set)