X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fruntime%2Fx86-arch.c;h=9d76b932c5027a3aa94dd6c5d6e81ffff61ac7f4;hb=5de74c72e5a9522c7fdd3dbb31a39641e9de8877;hp=5b98eb32a54542adf58e0c7a6ad05cc40bd097c7;hpb=53dd919e3b97fe7a63b6826d812eef6bac0ca9ad;p=sbcl.git diff --git a/src/runtime/x86-arch.c b/src/runtime/x86-arch.c index 5b98eb3..9d76b93 100644 --- a/src/runtime/x86-arch.c +++ b/src/runtime/x86-arch.c @@ -304,6 +304,14 @@ sigtrap_handler(int signal, siginfo_t *info, void *void_context) static void sigill_handler(int signal, siginfo_t *siginfo, void *void_context) { os_context_t *context = (os_context_t*)void_context; + +#if defined(LISP_FEATURE_DARWIN) + if (*((unsigned short *)*os_context_pc_addr(context)) == 0x0b0f) { + *os_context_pc_addr(context) += 2; + return sigtrap_handler(signal, siginfo, void_context); + } +#endif + fake_foreign_function_call(context); monitor_or_something(); }