Ignore:
Timestamp:
Jul 10, 2010, 5:10:09 AM (9 years ago)
Author:
rme
Message:

New scheme for dealing with floating point exceptions on x86-64 systems.

Currently, we mask floating point execptions around all foreign function
calls. While this may not be a huge component of FF call overhead, it
makes sense to avoid doing this for what is presumably an exceptional
case.

We now leave floating point exceptions enabled, but the exception
handler in the lisp kernel is prepared to deal with them: it saves
lisp's MXCSR, masks all floating point exceptions, and resumes
execution (after setting a flag in the TCR to note what it has done).
At the end of .SPffcall, we check this flag. If it is set, we
save the fp exception status, and restore lisp's original MXCSR.

Location:
trunk/source
Files:
2 edited

Legend:

Unmodified
Added
Removed
Note: See TracChangeset for help on using the changeset viewer.