[cmucl-commit] CMUCL commit: cross-sol-x86-branch src/code (float-trap.lisp)

Raymond Toy rtoy at common-lisp.net
Mon Dec 20 23:08:45 CET 2010


    Date: Monday, December 20, 2010 @ 17:08:45
  Author: rtoy
    Path: /project/cmucl/cvsroot/src/code
     Tag: cross-sol-x86-branch

Modified: float-trap.lisp

It looks like the sigcontext on solaris/x86 doesn't store the entire
x87 state, so just signal a general arithemtic error instead of an
error about a SIGFPE but no exceptions.


-----------------+
 float-trap.lisp |    9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)


Index: src/code/float-trap.lisp
diff -u src/code/float-trap.lisp:1.38 src/code/float-trap.lisp:1.38.8.1
--- src/code/float-trap.lisp:1.38	Tue Apr 20 13:57:44 2010
+++ src/code/float-trap.lisp	Mon Dec 20 17:08:45 2010
@@ -5,7 +5,7 @@
 ;;; Carnegie Mellon University, and has been placed in the public domain.
 ;;;
 (ext:file-comment
-  "$Header: /project/cmucl/cvsroot/src/code/float-trap.lisp,v 1.38 2010-04-20 17:57:44 rtoy Rel $")
+  "$Header: /project/cmucl/cvsroot/src/code/float-trap.lisp,v 1.38.8.1 2010-12-20 22:08:45 rtoy Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -290,6 +290,13 @@
 		    :operation fop
 		    :operands operands))
 	    (t
+	     ;; It looks like the sigcontext on Solaris/x86 doesn't
+	     ;; actually save the status word of the FPU.  The
+	     ;; operands also seem to be missing.  Signal a general
+	     ;; arithmetic error.
+	     #+solaris
+	     (error 'arithmetic-error :operands operands)
+	     #-solaris
 	     (error (intl:gettext "SIGFPE with no exceptions currently enabled?")))))))
 
 ;;; WITH-FLOAT-TRAPS-MASKED  --  Public


More information about the cmucl-commit mailing list