From: Christophe R. <cr...@us...> - 2003-09-15 13:45:21
|
Update of /cvsroot/sbcl/sbcl/src/runtime In directory sc8-pr-cvs1:/tmp/cvs-serv30824/src/runtime Modified Files: alpha-linux-os.c Log Message: 0.8.3.67: Somewhat amazingly, fixing the floating point issue described in "Alpha aargh" (CSR sbcl-devel 2003-09-12) wasn't too hard to fix. ... so fix it :-) Index: alpha-linux-os.c =================================================================== RCS file: /cvsroot/sbcl/sbcl/src/runtime/alpha-linux-os.c,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- alpha-linux-os.c 7 Apr 2003 13:16:57 -0000 1.8 +++ alpha-linux-os.c 15 Sep 2003 13:45:17 -0000 1.9 @@ -87,18 +87,10 @@ void os_restore_fp_control(os_context_t *context) { - /* FIXME (in two parts): - Firstly, what happens in alpha linux inside the signal handler? - Does the floating point control state get cleared as in other - Linuxes? - - Secondly, how do we put it back if so? It will probably involve - something to do with - - context->uc_mcontext.sc_fpcr - - (maybe a simple assembly statement will be enough) - */ + /* FIXME: 0x7E0000 is defined as something useful in constants.h, + but without the L, which would probably lead to 32/64-bit + errors if we simply used it here. Ugh. CSR, 2003-09-15 */ + arch_set_fp_control(os_context_fp_control(context) & ~(0x7e0000L)); } void os_flush_icache(os_vm_address_t address, os_vm_size_t length) |