diff --git a/ldb/mips-arch.c b/ldb/mips-arch.c index 0d997cfcb5ab28ad8648e56bbb758d20389209f6..11a518ec8eed241962f4086b3bc2686e9db4877b 100644 --- a/ldb/mips-arch.c +++ b/ldb/mips-arch.c @@ -54,12 +54,21 @@ static void sigtrap_handler(signal, code, context) undo_fake_foreign_function_call(context); break; + case trap_FunctionEndBreakpoint: + sigsetmask(context->sc_mask); + fake_foreign_function_call(context); + handle_function_end_breakpoint(signal, code, context); + undo_fake_foreign_function_call(context); + break; + default: interrupt_handle_now(signal, code, context); break; } } +#define FIXNUM_VALUE(lispobj) (((int)lispobj)>>2) + static void sigfpe_handler(signal, code, context) int signal, code; struct sigcontext *context; @@ -130,5 +139,5 @@ struct sigcontext *context; void arch_install_interrupt_handlers() { interrupt_install_low_level_handler(SIGTRAP,sigtrap_handler); - interrupt_install_low_level_handler(SIGEMT,sigemt_handler); + interrupt_install_low_level_handler(SIGEMT,sigfpe_handler); }