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>
|
2004-11-12 Mark Kettenis <kettenis@jive.nl>
|
||||||
|
|
||||||
* tui/tui-io.c: Don't include "terminal.h".
|
* 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 ()
|
#define INSTRUCTION_NULLIFIED hppa_instruction_nullified ()
|
||||||
#endif
|
#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
|
/* On HP-UX, certain system routines (millicode) have names beginning
|
||||||
with $ or $$, e.g. $$dyncall, which handles inter-space procedure
|
with $ or $$, e.g. $$dyncall, which handles inter-space procedure
|
||||||
calls on PA-RISC. Tell the expression parser to check for those
|
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_ENABLE_EXCEPTION_CALLBACK
|
||||||
#define CHILD_GET_CURRENT_EXCEPTION_EVENT
|
#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. */
|
/* Mostly it's common to all HPPA's. */
|
||||||
#include "pa/tm-hppa.h"
|
#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.
|
/* Exception handling support for the HP-UX ANSI C++ compiler.
|
||||||
The compiler (aCC) provides a callback for exception events;
|
The compiler (aCC) provides a callback for exception events;
|
||||||
|
|
|
@ -2264,30 +2264,6 @@ unwind_command (char *exp, int from_tty)
|
||||||
pin (Total_frame_size);
|
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
|
int
|
||||||
hppa_pc_requires_run_before_use (CORE_ADDR pc)
|
hppa_pc_requires_run_before_use (CORE_ADDR pc)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Add table
Reference in a new issue