X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fruntime%2Fx86-arch.c;h=dfbf908801c44877c47667024f6f2dfe8725adb8;hb=eac461c1f1ca91cfe282c779291d582ed6b336cb;hp=b000e0f1e3d1e47179e5ab599abf3ed25f8b4140;hpb=11b5ac86a98f058fe0375b0a707c6ef9e24590c9;p=sbcl.git diff --git a/src/runtime/x86-arch.c b/src/runtime/x86-arch.c index b000e0f..dfbf908 100644 --- a/src/runtime/x86-arch.c +++ b/src/runtime/x86-arch.c @@ -18,7 +18,6 @@ #include "os.h" #include "arch.h" #include "lispregs.h" -#include "signal.h" #include "alloc.h" #include "interrupt.h" #include "interr.h" @@ -78,7 +77,7 @@ context_eflags_addr(os_context_t *context) #elif defined __NetBSD__ return &(context->uc_mcontext.__gregs[_REG_EFL]); #elif defined LISP_FEATURE_WIN32 - return (int *)&context->EFlags; + return (int *)&context->win32_context->EFlags; #else #error unsupported OS #endif @@ -113,6 +112,10 @@ void arch_skip_instruction(os_context_t *context) case trap_FunEndBreakpoint: /* not tested */ break; +#ifdef LISP_FEATURE_SB_SAFEPOINT + case trap_GlobalSafepoint: + case trap_CspSafepoint: +#endif case trap_PendingInterrupt: case trap_Halt: case trap_SingleStepAround: @@ -287,7 +290,7 @@ sigtrap_handler(int signal, siginfo_t *info, os_context_t *context) /* This is just for info in case the monitor wants to print an * approximation. */ - current_control_stack_pointer = + access_control_stack_pointer(arch_os_get_current_thread()) = (lispobj *)*os_context_sp_addr(context); #ifdef LISP_FEATURE_SUNOS