[git] CMU Common Lisp branch master updated. snapshot-2014-08-24-g6ae7424
Raymond Toy
rtoy at common-lisp.net
Sat Aug 23 03:19:10 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 6ae74240bfa83dafcc6251b8a014a080d757df33 (commit)
via 1626be46a98e3b18e7609227ffd7823155dcffc4 (commit)
from 2c4a13afde093c0e1eb415c7252efaad6ca362f5 (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 6ae74240bfa83dafcc6251b8a014a080d757df33
Author: Raymond Toy <toy.raymond at gmail.com>
Date: Fri Aug 22 20:19:00 2014 -0700
Give up trying to get the operands if we don't know what the FP
operation was.
This shows up when fdlibm_setexception signals an exception. It seems
to set the exception bits directly instead of trying to do the
operation. This was confusing get-fp-operands.
diff --git a/src/compiler/ppc/float.lisp b/src/compiler/ppc/float.lisp
index 200772f..c5c944b 100644
--- a/src/compiler/ppc/float.lisp
+++ b/src/compiler/ppc/float.lisp
@@ -1445,6 +1445,9 @@
;; operands, if we can.
(multiple-value-bind (fop format rd rs1 rs2)
(get-fp-operation scp)
+ (unless fop
+ ;; Give up if we don't know the operation
+ (return-from get-fp-operands (values nil (list nil nil))))
(let ((traps (logand (ldb float-exceptions-byte modes)
(ldb float-traps-byte modes)))
(fs1 (and fop rs1 (sigcontext-float-register scp rs1 format)))
commit 1626be46a98e3b18e7609227ffd7823155dcffc4
Author: Raymond Toy <toy.raymond at gmail.com>
Date: Thu Aug 21 23:16:02 2014 -0700
On x86/darwin, we want and only need the sse2 mode bits. Darwin
doesn't use x87.
diff --git a/src/code/float-trap.lisp b/src/code/float-trap.lisp
index d97d04e..db0a9c4 100644
--- a/src/code/float-trap.lisp
+++ b/src/code/float-trap.lisp
@@ -87,7 +87,7 @@
(setf (x87-floating-point-modes) x87-modes)))
)
-#+sse2
+#+(and sse2 (not darwin))
(progn
(defun floating-point-modes ()
;; Combine the modes from the FPU and SSE2 units. Since the sse
@@ -119,7 +119,20 @@
(setf (vm::sse2-floating-point-modes) new-mode)
(setf (vm::x87-floating-point-modes) x87-modes))
new-mode)
-)
+ )
+
+#(and sse2 darwin)
+(progn
+ (defun floating-point-modes ()
+ ;; Get just the SSE2 mode bits.
+ (vm::sse2-floating-point-modes))
+
+ (defun (setf floating-point-modes) (new-mode)
+ (declare (type (unsigned-byte 24) new-mode))
+ ;; Set the floating point modes for SSE2.
+ (setf (vm::sse2-floating-point-modes) new-mode)
+ new-mode)
+ )
;;; SET-FLOATING-POINT-MODES -- Public
;;;
-----------------------------------------------------------------------
Summary of changes:
src/code/float-trap.lisp | 17 +++++++++++++++--
src/compiler/ppc/float.lisp | 3 +++
2 files changed, 18 insertions(+), 2 deletions(-)
hooks/post-receive
--
CMU Common Lisp
More information about the cmucl-cvs
mailing list