Raymond Toy pushed to branch issue-97-define-ud2-inst at cmucl / cmucl

Commits:

1 changed file:

Changes:

  • src/lisp/arch.h
    ... ... @@ -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);