* (fxsra <fx> <32*i>) now returns a proper value (0 or 1)
This commit is contained in:
parent
cb3b0b3edd
commit
7d46631e14
BIN
src/ikarus.boot
BIN
src/ikarus.boot
Binary file not shown.
|
@ -641,11 +641,18 @@
|
||||||
(record-case i
|
(record-case i
|
||||||
[(constant i)
|
[(constant i)
|
||||||
(unless (fixnum? i) (interrupt))
|
(unless (fixnum? i) (interrupt))
|
||||||
(prm 'logand (prm 'sra (T x) (K i)) (K (* -1 fixnum-scale)))]
|
(prm 'logand
|
||||||
|
(prm 'sra (T x) (K (if (> i 31) 31 i)))
|
||||||
|
(K (* -1 fixnum-scale)))]
|
||||||
[else
|
[else
|
||||||
(prm 'logand
|
(with-tmp ([i (prm 'sra (T i) (K fixnum-shift))])
|
||||||
(prm 'sra (T x) (prm 'sra (T i) (K fixnum-shift)))
|
(with-tmp ([i (make-conditional
|
||||||
(K (* -1 fixnum-scale)))])]
|
(prm '< i (K 32))
|
||||||
|
i
|
||||||
|
(K 31))])
|
||||||
|
(prm 'logand
|
||||||
|
(prm 'sra (T x) i)
|
||||||
|
(K (* -1 fixnum-scale)))))])]
|
||||||
[(P x i) (K #t)]
|
[(P x i) (K #t)]
|
||||||
[(E x i) (nop)])
|
[(E x i) (nop)])
|
||||||
|
|
||||||
|
|
|
@ -288,7 +288,7 @@
|
||||||
[fxmax S fx]
|
[fxmax S fx]
|
||||||
[fxmin S fx]
|
[fxmin S fx]
|
||||||
[fxmod D fx]
|
[fxmod D fx]
|
||||||
[fxmod0 S fx]
|
[fxmod0 D fx]
|
||||||
[fxnegative? C fx]
|
[fxnegative? C fx]
|
||||||
[fxnot C fx]
|
[fxnot C fx]
|
||||||
[fxodd? C fx]
|
[fxodd? C fx]
|
||||||
|
|
Loading…
Reference in New Issue