From: Alastair B. <lis...@us...> - 2015-11-30 21:17:31
|
The branch "master" has been updated in SBCL: via 9519e5fa354028ef9f73a66ebd75a84dd89c87bb (commit) from 98a51144982a2310fc0d26eff5efef20593b0956 (commit) - Log ----------------------------------------------------------------- commit 9519e5fa354028ef9f73a66ebd75a84dd89c87bb Author: Alastair Bridgewater <ala...@gm...> Date: Wed Nov 25 22:25:19 2015 -0500 hppa: Use EQL to test for floating zeros as immediate constants * Using ZEROP here conflates positive and negative zeros, which can lead to miscompiled code when the difference actually matters. Crib the Alpha version instead, which uses EQL, and thus rightly rejects negative zeros as immediate constants. --- src/compiler/hppa/vm.lisp | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/compiler/hppa/vm.lisp b/src/compiler/hppa/vm.lisp index 116ba85..ca5b152 100644 --- a/src/compiler/hppa/vm.lisp +++ b/src/compiler/hppa/vm.lisp @@ -319,11 +319,11 @@ (sc-number-or-lose 'immediate) nil)) (single-float - (if (zerop value) + (if (eql value 0f0) (sc-number-or-lose 'fp-single-zero) nil)) (double-float - (if (zerop value) + (if (eql value 0d0) (sc-number-or-lose 'fp-double-zero) nil)))) ----------------------------------------------------------------------- hooks/post-receive -- SBCL |