[git] CMU Common Lisp branch master updated. 20e-8-ge99b2b2
Raymond Toy
rtoy at common-lisp.net
Sun Oct 27 00:02:10 UTC 2013
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 e99b2b29bf65f7a2a678e9d7199085bf4aabd81a (commit)
from d337d008ea8f8a47a34b27516bd4f60f8299881a (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 e99b2b29bf65f7a2a678e9d7199085bf4aabd81a
Author: Raymond Toy <toy.raymond at gmail.com>
Date: Sat Oct 26 17:01:54 2013 -0700
Document why %unary-ftruncate multiplies the result by x when result =
0.
diff --git a/src/compiler/float-tran.lisp b/src/compiler/float-tran.lisp
index a107e79..187d17b 100644
--- a/src/compiler/float-tran.lisp
+++ b/src/compiler/float-tran.lisp
@@ -210,10 +210,9 @@
;; if x is known to be of the right type. Also, if the result is
;; known to fit in the same range as a (signed-byte 32), convert this
;; to %unary-truncate, which might be a single instruction, and float
-;; the result. However, for sparc, we have a vop to do this so call
-;; that, and for Sparc V9, we can actually handle a 64-bit integer
-;; range.
-
+;; the result. However, for sparc and x86, we have a vop to do this
+;; so call that, and for Sparc V9, we can actually handle a 64-bit
+;; integer range.
(macrolet ((frob (ftype func)
`(deftransform %unary-ftruncate ((x) (,ftype))
(let* ((x-type (continuation-type x))
@@ -226,6 +225,9 @@
(< hi limit-hi))
#-(or sparc (and x86 sse2))
'(let ((result (coerce (%unary-truncate x) ',ftype)))
+ ;; Multiply by x when result is 0 so that we
+ ;; get the correct signed zero to match what
+ ;; ftruncate in float.lisp would return.
(if (zerop result)
(* result x)
result))
-----------------------------------------------------------------------
Summary of changes:
src/compiler/float-tran.lisp | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
hooks/post-receive
--
CMU Common Lisp
More information about the cmucl-cvs
mailing list