[cmucl-commit] [git] CMU Common Lisp branch master updated. snapshot-2014-06-92-g75d14d2
Raymond Toy
rtoy at common-lisp.net
Tue Aug 5 01:55:36 UTC 2014
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMU Common Lisp".
The branch, master has been updated
via 75d14d2ed7dc9085858d9119013b67fbdfe77390 (commit)
from 47718592f9ef89fd8a52f07d41c8553aa8b525f2 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 75d14d2ed7dc9085858d9119013b67fbdfe77390
Author: Raymond Toy <toy.raymond at gmail.com>
Date: Mon Aug 4 18:55:27 2014 -0700
Fix bug in DOUBLE-FLOAT-BITS vop.
Add a lifetime spec to the arg so that we don't accidentally destroy
the arg when writing the two results. Previously, HI-BITS was
allocated to the same register as FLOAT (in a descriptor). Writing
HI-BITS would destroy the contents of the FLOAT and when trying to
write lo-bits, we would read from the wrong address because FLOAT now
contains the high bits of the double float number.
diff --git a/src/compiler/x86/float-sse2.lisp b/src/compiler/x86/float-sse2.lisp
index bfa6df9..e7b1b86 100644
--- a/src/compiler/x86/float-sse2.lisp
+++ b/src/compiler/x86/float-sse2.lisp
@@ -1272,7 +1272,8 @@
(define-vop (double-float-bits)
(:args (float :scs (double-reg descriptor-reg)
- :load-if (not (sc-is float double-stack))))
+ :load-if (not (sc-is float double-stack))
+ :to (:result 1)))
(:results (hi-bits :scs (signed-reg))
(lo-bits :scs (unsigned-reg)))
(:arg-types double-float)
-----------------------------------------------------------------------
Summary of changes:
src/compiler/x86/float-sse2.lisp | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
hooks/post-receive
--
CMU Common Lisp
More information about the cmucl-commit
mailing list