X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fruntime%2Fmips-arch.c;h=4eab888167f881705654ac3b4251339453f398a4;hb=6769a6cdb368694f39f9c0e2b6790f45cf308b91;hp=87220217e0a4183e694d6684117dad807c63e218;hpb=3da4a7fbba3015abf8572946dc4481dc2980b943;p=sbcl.git diff --git a/src/runtime/mips-arch.c b/src/runtime/mips-arch.c index 8722021..4eab888 100644 --- a/src/runtime/mips-arch.c +++ b/src/runtime/mips-arch.c @@ -274,6 +274,12 @@ arch_set_pseudo_atomic_interrupted(os_context_t *context) *os_context_register_addr(context, reg_NL4) |= -1LL<<31; } +void +arch_clear_pseudo_atomic_interrupted(os_context_t *context) +{ + *os_context_register_addr(context, reg_NL4) &= ~(-1LL<<31); +} + unsigned int arch_install_breakpoint(void *pc) { @@ -397,8 +403,7 @@ sigtrap_handler(int signal, siginfo_t *info, void *void_context) break; case 0x10: - /* Clear the pseudo-atomic flag. */ - *os_context_register_addr(context, reg_NL4) &= ~(-1LL<<31); + arch_clear_pseudo_atomic_interrupted(context) arch_skip_instruction(context); interrupt_handle_pending(context); return;