0.8.2.7:
[sbcl.git] / src / runtime / ppc-arch.c
index eac4013..3d209e9 100644 (file)
@@ -1,12 +1,3 @@
-/*
-
- $Header$
-
- This code was written as part of the CMU Common Lisp project at
- Carnegie Mellon University, and has been placed in the public domain.
-
-*/
-
 #include <stdio.h>
 
 #include "arch.h"
@@ -58,7 +49,7 @@ arch_get_bad_addr(int sig, siginfo_t *code, os_context_t *context)
     if ((((unsigned long)pc) & 3) != 0 ||
        ((pc < READ_ONLY_SPACE_START ||
          pc >= READ_ONLY_SPACE_START+READ_ONLY_SPACE_SIZE) &&
-        ((lispobj *)pc < current_dynamic_space &&
+        ((lispobj *)pc < current_dynamic_space || 
          (lispobj *)pc >= current_dynamic_space + DYNAMIC_SPACE_SIZE)))
        return 0;
     
@@ -107,6 +98,14 @@ arch_install_breakpoint(void *pc)
 }
 
 void 
+get_spinlock(lispobj *word,int value)
+{
+    /* FIXME */
+    *word=value;
+}
+
+
+void 
 arch_remove_breakpoint(void *pc, unsigned long orig_inst)
 {
     *(unsigned long *)pc = orig_inst;
@@ -137,6 +136,9 @@ sigtrap_handler(int signal, siginfo_t *siginfo, os_context_t *context)
     int badinst;
     u32 code;
     sigset_t *mask;
+#ifdef LISP_FEATURE_LINUX
+    os_restore_fp_control(context);
+#endif
     mask=(os_context_sigmask_addr(context));
     sigsetmask(mask); 
     code=*((u32 *)(*os_context_pc_addr(context)));