0.8.9.6.netbsd.2:
[sbcl.git] / src / runtime / alpha-linux-os.c
index 5e25e80..99c8856 100644 (file)
@@ -42,9 +42,6 @@ size_t os_vm_page_size;
 #ifdef LISP_FEATURE_SB_THREAD
 #error "Define threading support functions"
 #else
-struct thread *arch_os_get_current_thread() {
-    return all_threads;
-}
 int arch_os_thread_init(struct thread *thread) {
     return 1;                  /* success */
 }
@@ -88,9 +85,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)