1.1.13: will be tagged as "sbcl-1.1.13"
[sbcl.git] / src / runtime / x86-arch.c
index b000e0f..d00f26b 100644 (file)
@@ -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"
@@ -38,8 +37,6 @@
 #define BREAKPOINT_WIDTH 2
 #endif
 
-unsigned long fast_random_state = 1;
-
 void arch_init(void)
 {}
 
@@ -78,7 +75,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 +110,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 +288,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