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