0.8.13:
[sbcl.git] / src / runtime / ppc-arch.c
index c35fc4c..aa8a522 100644 (file)
@@ -1,5 +1,6 @@
 #include <stdio.h>
 
+#include "sbcl.h"
 #include "arch.h"
 #include "sbcl.h"
 #include "globals.h"
@@ -95,14 +96,6 @@ 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;
@@ -193,12 +186,24 @@ sigtrap_handler(int signal, siginfo_t *siginfo, os_context_t *context)
            interrupt_handle_now(signal, code, context);
            break;
        }
+#ifdef LISP_FEATURE_DARWIN
+       sigreturn(context);
+#endif
+       return;
     }
     if (((code >> 26) == 3) && (((code >> 21) & 31) == 24)) {
        interrupt_internal_error(signal, code, context, 0);
+#ifdef LISP_FEATURE_DARWIN
+       sigreturn(context);
+#endif
+       return;
     }
     
     interrupt_handle_now(signal, code, context);
+#ifdef LISP_FEATURE_DARWIN
+    /* Work around G5 bug */
+    sigreturn(context);
+#endif
 }