Commit d9763e90 authored by Raymond Toy's avatar Raymond Toy
Browse files

In WITH-FLOAT-TRAPS-*, remove the unused junk modifying the state.

We just want to return the original modes, so remove all the old
commented out stuff that was modifying the original modes to some
strange state.  This makes a lot more sense to me if
WITH-FLOAT-TRAPS-* actually restored the modes exactly as they were
before running the body.
parent da2ff74d
Loading
Loading
Loading
Loading
+6 −15
Changes for src/code/float-trap.lisp: 6 added lines, 15 removed lines.
Original line number Diff line number Diff line
@@ -451,6 +451,10 @@
		    ;; representing the invalid operation.  Otherwise, if we
		    ;; enable the invalid trap later, these sticky bits will cause
		    ;; an exception.
		    ;;
		    ;; FIXME: Consider removing these for ppc.  Since
		    ;; we now restore the original modes exactly, I
		    ;; don't think these are needed anymore.
		    #+ppc
		    (invalid-mask (if (member :invalid traps)
				      (dpb 0
@@ -467,21 +471,8 @@
				     (logand (,',merge-traps ,orig-modes ,trap-mask)
					     ,exception-mask)))
			  ,@body)
		     ;; Restore the original traps and exceptions.
		     (format *debug-io* "Saved fpu mode:   #x~4,'0x: ~S~%"
			     ,orig-modes (decode-floating-point-modes ,orig-modes))
		     (format *debug-io* "Current fpu mode: #x~4,'0x: ~S~%"
			     (floating-point-modes) (get-floating-point-modes))
		     #+nil
		     (setf (floating-point-modes)
			   (logior (logand ,orig-modes ,(logior traps exceptions))
				   (logand ,orig-modes
					   ,(logand trap-mask exception-mask)
					   #+ppc
					   ,invalid-mask
					   #+mips ,(dpb 0 float-exceptions-byte #xffffffff))))
		     (setf (floating-point-modes) ,orig-modes)
		     ))))))))
		     ;; Restore the modes exactly as they were.
		     (setf (floating-point-modes) ,orig-modes)))))))))

  ;; WITH-FLOAT-TRAPS-MASKED  --  Public
  (with-float-traps masked logand