X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fruntime%2Falpha-linux-os.c;h=9f1e586e05132700342b3d9e9b26d5f0a27af659;hb=d4b738d6c0b354de817fa490b50814e40872b3d0;hp=5e25e80de081003e84366a273b9cbdee2be03247;hpb=adcd870f5442b48e0572f1de51fe53edfa2ba26b;p=sbcl.git diff --git a/src/runtime/alpha-linux-os.c b/src/runtime/alpha-linux-os.c index 5e25e80..9f1e586 100644 --- a/src/runtime/alpha-linux-os.c +++ b/src/runtime/alpha-linux-os.c @@ -88,9 +88,17 @@ void os_restore_fp_control(os_context_t *context) { /* FIXME: 0x7E0000 is defined as something useful in constants.h, - but without the L, which would probably lead to 32/64-bit + but without the UL, 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)); + arch_set_fp_control(os_context_fp_control(context) & ~(0x7e0000UL) & + /* KLUDGE: for some reason that I don't + understand, by the time we get here the + "enable denormalized traps" bit in the fp + control word is set. Since we really don't + want to tra every time someone types + LEAST-POSITIVE-SINGLE-FLOAT into the repl, + mask that bit out. -- CSR, 2003-09-15 */ + ~(0x1UL<<6)); } void os_flush_icache(os_vm_address_t address, os_vm_size_t length)