Skip to content
Snippets Groups Projects
Commit 9edd3c4b authored by rtoy's avatar rtoy
Browse files

Fix for handling arithmetic errors with x87.

Use bootstrap-2009-01-1.lisp to bootstrap this change.

code/float-trap.lisp:
o FLOATING-POINT-MODES for :X87 needs to massage the results into the
  expected format (SSE2 MXCSR order).
o Update for changed VOP names too.

compiler/x86/float.lisp:
o Rename the floating-point-modes and set-floating-point-modes VOPS to
  x87-floating-point-modes and set-x87-floating-point-modes.  Change
  the translations accordingly too.

compiler/x86/parms.lisp:
o The float property bytes have been updated to match the SSE2 MXCSR
  register for both SSE2 and X87 builds because the code assumes SSE2
  format.

lisp/Linux-os.c:
o Don't OR in the SSE2 modes if we're not running an SSE2 build.
  Doing this can erroneously mask out exceptions because the Lisp code
  didn't set up the sse2 modes.  (This happens if you select the x87
  core on a chip that supports sse2.)

lisp/globals.h:
o Declare fpu_mode.

lisp/lisp.c:
o Set fpu_mode to be the mode determined from the core file.  Needed
  in Linux-os.c to process the SSE2 modes correctly with an x87 core
  on a sse2-capable chip.
parent cbde15e9
No related branches found
No related tags found
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment