2004-11-12 Randolph Chung <tausq@debian.org>
* hppa-tdep.c (hppa_skip_permanent_breakpoint): Move definition ... * hppa-hpux-tdep.c (hppa_skip_permanent_breakpoint): ... to here. * config/pa/tm-hppa.h (SKIP_PERMANENT_BREAKPOINT): Move definition ... * config/pa/tm-hppah.h (SKIP_PERMANENT_BREAKPOINT): ... to here.
This commit is contained in:
parent
c46ec85da2
commit
5aac166f58
5 changed files with 34 additions and 28 deletions
|
@ -1,3 +1,10 @@
|
|||
2004-11-12 Randolph Chung <tausq@debian.org>
|
||||
|
||||
* hppa-tdep.c (hppa_skip_permanent_breakpoint): Move definition ...
|
||||
* hppa-hpux-tdep.c (hppa_skip_permanent_breakpoint): ... to here.
|
||||
* config/pa/tm-hppa.h (SKIP_PERMANENT_BREAKPOINT): Move definition ...
|
||||
* config/pa/tm-hppah.h (SKIP_PERMANENT_BREAKPOINT): ... to here.
|
||||
|
||||
2004-11-12 Mark Kettenis <kettenis@jive.nl>
|
||||
|
||||
* tui/tui-io.c: Don't include "terminal.h".
|
||||
|
|
|
@ -35,10 +35,6 @@ extern int hppa_instruction_nullified (void);
|
|||
#define INSTRUCTION_NULLIFIED hppa_instruction_nullified ()
|
||||
#endif
|
||||
|
||||
/* Here's how to step off a permanent breakpoint. */
|
||||
#define SKIP_PERMANENT_BREAKPOINT (hppa_skip_permanent_breakpoint)
|
||||
extern void hppa_skip_permanent_breakpoint (void);
|
||||
|
||||
/* On HP-UX, certain system routines (millicode) have names beginning
|
||||
with $ or $$, e.g. $$dyncall, which handles inter-space procedure
|
||||
calls on PA-RISC. Tell the expression parser to check for those
|
||||
|
|
|
@ -41,5 +41,9 @@ struct frame_info;
|
|||
#define CHILD_ENABLE_EXCEPTION_CALLBACK
|
||||
#define CHILD_GET_CURRENT_EXCEPTION_EVENT
|
||||
|
||||
/* Here's how to step off a permanent breakpoint. */
|
||||
#define SKIP_PERMANENT_BREAKPOINT (hppa_skip_permanent_breakpoint)
|
||||
extern void hppa_skip_permanent_breakpoint (void);
|
||||
|
||||
/* Mostly it's common to all HPPA's. */
|
||||
#include "pa/tm-hppa.h"
|
||||
|
|
|
@ -505,6 +505,29 @@ hppa_hpux_skip_trampoline_code (CORE_ADDR pc)
|
|||
}
|
||||
}
|
||||
|
||||
void
|
||||
hppa_skip_permanent_breakpoint (void)
|
||||
{
|
||||
/* To step over a breakpoint instruction on the PA takes some
|
||||
fiddling with the instruction address queue.
|
||||
|
||||
When we stop at a breakpoint, the IA queue front (the instruction
|
||||
we're executing now) points at the breakpoint instruction, and
|
||||
the IA queue back (the next instruction to execute) points to
|
||||
whatever instruction we would execute after the breakpoint, if it
|
||||
were an ordinary instruction. This is the case even if the
|
||||
breakpoint is in the delay slot of a branch instruction.
|
||||
|
||||
Clearly, to step past the breakpoint, we need to set the queue
|
||||
front to the back. But what do we put in the back? What
|
||||
instruction comes after that one? Because of the branch delay
|
||||
slot, the next insn is always at the back + 4. */
|
||||
write_register (HPPA_PCOQ_HEAD_REGNUM, read_register (HPPA_PCOQ_TAIL_REGNUM));
|
||||
write_register (HPPA_PCSQ_HEAD_REGNUM, read_register (HPPA_PCSQ_TAIL_REGNUM));
|
||||
|
||||
write_register (HPPA_PCOQ_TAIL_REGNUM, read_register (HPPA_PCOQ_TAIL_REGNUM) + 4);
|
||||
/* We can leave the tail's space the same, since there's no jump. */
|
||||
}
|
||||
|
||||
/* Exception handling support for the HP-UX ANSI C++ compiler.
|
||||
The compiler (aCC) provides a callback for exception events;
|
||||
|
|
|
@ -2264,30 +2264,6 @@ unwind_command (char *exp, int from_tty)
|
|||
pin (Total_frame_size);
|
||||
}
|
||||
|
||||
void
|
||||
hppa_skip_permanent_breakpoint (void)
|
||||
{
|
||||
/* To step over a breakpoint instruction on the PA takes some
|
||||
fiddling with the instruction address queue.
|
||||
|
||||
When we stop at a breakpoint, the IA queue front (the instruction
|
||||
we're executing now) points at the breakpoint instruction, and
|
||||
the IA queue back (the next instruction to execute) points to
|
||||
whatever instruction we would execute after the breakpoint, if it
|
||||
were an ordinary instruction. This is the case even if the
|
||||
breakpoint is in the delay slot of a branch instruction.
|
||||
|
||||
Clearly, to step past the breakpoint, we need to set the queue
|
||||
front to the back. But what do we put in the back? What
|
||||
instruction comes after that one? Because of the branch delay
|
||||
slot, the next insn is always at the back + 4. */
|
||||
write_register (HPPA_PCOQ_HEAD_REGNUM, read_register (HPPA_PCOQ_TAIL_REGNUM));
|
||||
write_register (HPPA_PCSQ_HEAD_REGNUM, read_register (HPPA_PCSQ_TAIL_REGNUM));
|
||||
|
||||
write_register (HPPA_PCOQ_TAIL_REGNUM, read_register (HPPA_PCOQ_TAIL_REGNUM) + 4);
|
||||
/* We can leave the tail's space the same, since there's no jump. */
|
||||
}
|
||||
|
||||
int
|
||||
hppa_pc_requires_run_before_use (CORE_ADDR pc)
|
||||
{
|
||||
|
|
Loading…
Add table
Reference in a new issue