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);
|