diff --git a/code/float-trap.lisp b/code/float-trap.lisp index 186184323b58468e4eedf631c3a6fa69d595c9f2..e2816022f95142e1f1b6189ba2800e5949c708f5 100644 --- a/code/float-trap.lisp +++ b/code/float-trap.lisp @@ -5,7 +5,7 @@ ;;; Carnegie Mellon University, and has been placed in the public domain. ;;; (ext:file-comment - "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/float-trap.lisp,v 1.34 2009/01/05 22:26:26 rtoy Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/float-trap.lisp,v 1.35 2009/07/06 13:29:57 rtoy Rel $") ;;; ;;; ********************************************************************** ;;; @@ -75,8 +75,11 @@ (logior (ash (logand #x3f new) 16) (ash rc 10) (logand #x3f (ash new -7)) - ;; Set precision control to be 64-bit, always. - (ash 3 8)))) + ;; Set precision control to be 53-bit, always. + ;; (The compiler takes care of handling + ;; single-float precision, and we don't support + ;; long-floats.) + (ash 2 8)))) (setf (x87-floating-point-modes) x87-modes))) ) @@ -104,7 +107,10 @@ (logior (ash (logand #x3f new-mode) 16) (ash rc 10) (logand #x3f (ash new-mode -7)) - ;; Set precision control to be 64-bit, always. + ;; Set precision control to be 64-bit, always. We + ;; don't use the x87 registers with sse2, so this + ;; is ok and would be the correct setting if we + ;; ever support long-floats. (ash 3 8)))) (setf (vm::sse2-floating-point-modes) new-mode) (setf (vm::x87-floating-point-modes) x87-modes))