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@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