projects
/
sbcl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
0.9.10.30:
[sbcl.git]
/
src
/
runtime
/
x86-arch.c
diff --git
a/src/runtime/x86-arch.c
b/src/runtime/x86-arch.c
index
5b98eb3
..
9d76b93
100644
(file)
--- 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;
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();
}
fake_foreign_function_call(context);
monitor_or_something();
}