* Added ratnum cases to binary*.
This commit is contained in:
parent
b859c05bd6
commit
3798fd932a
BIN
src/ikarus.boot
BIN
src/ikarus.boot
Binary file not shown.
|
@ -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 +
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue