Commit 75d14d2e authored by Raymond Toy's avatar Raymond Toy
Browse files

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.
parent 47718592
......@@ -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)
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment