1.0.26.6: use private operations on futexes
[sbcl.git] / src / runtime / ppc-arch.c
index 11be9fd..db0ced7 100644 (file)
@@ -423,14 +423,10 @@ arch_handle_single_step_trap(os_context_t *context, int trap)
 }
 
 static void
-sigtrap_handler(int signal, siginfo_t *siginfo, void *void_context)
+sigtrap_handler(int signal, siginfo_t *siginfo, os_context_t *context)
 {
     unsigned int code;
-    os_context_t *context = void_context;
 
-#ifdef LISP_FEATURE_LINUX
-    os_restore_fp_control(context);
-#endif
     code=*((u32 *)(*os_context_pc_addr(context)));
     if (code == ((3 << 26) | (0x18 << 21) | (reg_NL3 << 16))) {
         arch_clear_pseudo_atomic_interrupted(context);
@@ -446,9 +442,6 @@ sigtrap_handler(int signal, siginfo_t *siginfo, void *void_context)
     if (allocation_trap_p(context)) {
         handle_allocation_trap(context);
         arch_skip_instruction(context);
-#ifdef LISP_FEATURE_DARWIN
-        DARWIN_FIX_CONTEXT(context);
-#endif
         return;
     }
 #endif
@@ -457,25 +450,14 @@ sigtrap_handler(int signal, siginfo_t *siginfo, void *void_context)
         /* twllei reg_ZERO,N will always trap if reg_ZERO = 0 */
         int trap = code & 0x1f;
         handle_trap(context,trap);
-
-#ifdef LISP_FEATURE_DARWIN
-        DARWIN_FIX_CONTEXT(context);
-#endif
         return;
     }
     if (((code >> 26) == 3) && (((code >> 21) & 31) == 24)) {
         interrupt_internal_error(context, 0);
-#ifdef LISP_FEATURE_DARWIN
-        DARWIN_FIX_CONTEXT(context);
-#endif
         return;
     }
 
     interrupt_handle_now(signal, (siginfo_t *)code, context);
-#ifdef LISP_FEATURE_DARWIN
-    /* Work around G5 bug */
-    DARWIN_FIX_CONTEXT(context);
-#endif
 }