+static void
+sigill_handler(int signal, siginfo_t *siginfo, os_context_t *context)
+{
+ unsigned int bad_inst;
+
+ bad_inst = *(unsigned int *)(*os_context_pc_addr(context) & ~3);
+ if (bad_inst == 9) { /* pending-interrupt */
+ arch_clear_pseudo_atomic_interrupted(context);
+ arch_skip_instruction(context);
+ interrupt_handle_pending(context);
+ } else {
+ handle_trap(context,bad_inst);
+ }
+}
+
+static void sigfpe_handler(int signal, siginfo_t *siginfo,
+ os_context_t *context)