sigtrap_handler(int signal, siginfo_t *siginfo, os_context_t *context)
{
u32 code;
- sigset_t *mask;
#ifdef LISP_FEATURE_LINUX
os_restore_fp_control(context);
#endif
- mask=(os_context_sigmask_addr(context));
- sigsetmask(mask);
code=*((u32 *)(*os_context_pc_addr(context)));
if (code == ((3 << 26) | (16 << 21) | (reg_ALLOC << 16))) {
/* twlti reg_ALLOC,0 - check for deferred interrupt */
break;
case trap_PendingInterrupt:
- /* when do we run this branch instead of the twlti code above? */
+ /* This is supposed run after WITHOUT-INTERRUPTS if there
+ * were pending signals. */
arch_skip_instruction(context);
interrupt_handle_pending(context);
break;