Raymond Toy pushed to branch issue-97-define-ud2-inst at cmucl / cmucl
Commits:
-
064c1aa6
by Raymond Toy at 2021-05-21T16:26:46-07:00
1 changed file:
Changes:
| ... | ... | @@ -18,10 +18,27 @@ extern boolean arch_pseudo_atomic_atomic(os_context_t * scp); |
| 18 | 18 |
extern void arch_set_pseudo_atomic_interrupted(os_context_t * scp);
|
| 19 | 19 |
extern os_vm_address_t arch_get_bad_addr(HANDLER_ARGS);
|
| 20 | 20 |
extern unsigned char *arch_internal_error_arguments(os_context_t * scp);
|
| 21 |
+ |
|
| 22 |
+/*
|
|
| 23 |
+ * Install an architecture-dependent breakpoint instruction at the
|
|
| 24 |
+ * given PC address. This also returns the bytes that were
|
|
| 25 |
+ * overwritten by the breakpoint instruction so that the original
|
|
| 26 |
+ * instruction can be restored once the breakpoint has been handled.
|
|
| 27 |
+ */
|
|
| 21 | 28 |
extern unsigned long arch_install_breakpoint(void *pc);
|
| 29 |
+ |
|
| 22 | 30 |
extern void arch_remove_breakpoint(void *pc, unsigned long orig_inst);
|
| 23 | 31 |
extern void arch_install_interrupt_handlers(void);
|
| 32 |
+ |
|
| 33 |
+/*
|
|
| 34 |
+ * This is called when we need to continue after a breakpoint. The
|
|
| 35 |
+ * original instruction in |orig_inst| is put back. Then things are
|
|
| 36 |
+ * set up so that we can run again and after this instruction is run,
|
|
| 37 |
+ * we trap again so that the original breakpoint can be replaced. How
|
|
| 38 |
+ * this is done is architecture-dependent.
|
|
| 39 |
+ */
|
|
| 24 | 40 |
extern void arch_do_displaced_inst(os_context_t * scp, unsigned long orig_inst);
|
| 41 |
+ |
|
| 25 | 42 |
extern lispobj funcall0(lispobj function);
|
| 26 | 43 |
extern lispobj funcall1(lispobj function, lispobj arg0);
|
| 27 | 44 |
extern lispobj funcall2(lispobj function, lispobj arg0, lispobj arg1);
|