static sigset_t orig_sigmask;
void
-arch_do_displaced_inst(os_context_t *context,unsigned int orig_inst)
+arch_do_displaced_inst(os_context_t *context, unsigned int orig_inst)
{
/* not sure how we ensure that we get the breakpoint reinstalled
* after doing this -dan */
*pc = orig_inst;
os_flush_icache((os_vm_address_t) pc, sizeof(unsigned int));
skipped_break_addr = pc;
+
+ /* FIXME: we should apparently be installing the after-breakpoint
+ * here, but would need to find the next instruction address for
+ * it first. alpha-arch.c shows how to do it. --NS 2007-04-02 */
}
#ifdef LISP_FEATURE_GENCGC
fprintf(stderr, "In handle_allocation_trap\n");
#endif
- /*
- * I don't think it's possible for us NOT to be in lisp when we get
- * here. Remove this later?
- */
+ /* I don't think it's possible for us NOT to be in lisp when we get
+ * here. Remove this later? */
were_in_lisp = !foreign_function_call_active;
if (were_in_lisp) {
=(int)handle_fun_end_breakpoint(context);
}
-/* FIXME: AFTER-BREAKPOINT-TRAP is defined for PPC, but never
- * emitted as far as I can see. Should it be emitted, do removed
- * entirely? */
void
arch_handle_after_breakpoint(os_context_t *context)
{
if ((code >> 16) == ((3 << 10) | (6 << 5))) {
/* twllei reg_ZERO,N will always trap if reg_ZERO = 0 */
int trap = code & 0x1f;
-
- if (!maybe_handle_trap(context,trap))
- interrupt_handle_now(signal, siginfo, context);
+ handle_trap(context,trap);
#ifdef LISP_FEATURE_DARWIN
DARWIN_FIX_CONTEXT(context);
undoably_install_low_level_interrupt_handler(SIGTRAP,sigtrap_handler);
}
-
-extern lispobj call_into_lisp(lispobj fun, lispobj *args, int nargs);
-
-lispobj funcall0(lispobj function)
-{
- lispobj *args = current_control_stack_pointer;
-
- return call_into_lisp(function, args, 0);
-}
-
-lispobj funcall1(lispobj function, lispobj arg0)
-{
- lispobj *args = current_control_stack_pointer;
-
- current_control_stack_pointer += 1;
- args[0] = arg0;
-
- return call_into_lisp(function, args, 1);
-}
-
-lispobj funcall2(lispobj function, lispobj arg0, lispobj arg1)
-{
- lispobj *args = current_control_stack_pointer;
-
- current_control_stack_pointer += 2;
- args[0] = arg0;
- args[1] = arg1;
-
- return call_into_lisp(function, args, 2);
-}
-
-lispobj funcall3(lispobj function, lispobj arg0, lispobj arg1, lispobj arg2)
-{
- lispobj *args = current_control_stack_pointer;
-
- current_control_stack_pointer += 3;
- args[0] = arg0;
- args[1] = arg1;
- args[2] = arg2;
-
- return call_into_lisp(function, args, 3);
-}
-
void
ppc_flush_icache(os_vm_address_t address, os_vm_size_t length)
{