X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fruntime%2Fppc-arch.c;h=a8df9622b5b6dd509b2eb80f918671f86f349a95;hb=1f763fa8eca17771d2c091094855fcb8b84d66da;hp=c35fc4c87eae1eee269f2601aea4e16e0e94eba7;hpb=506253505641855dc8bb87033f7af894904f848b;p=sbcl.git diff --git a/src/runtime/ppc-arch.c b/src/runtime/ppc-arch.c index c35fc4c..a8df962 100644 --- a/src/runtime/ppc-arch.c +++ b/src/runtime/ppc-arch.c @@ -1,7 +1,7 @@ #include -#include "arch.h" #include "sbcl.h" +#include "arch.h" #include "globals.h" #include "validate.h" #include "os.h" @@ -95,14 +95,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 +185,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 }