mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-09-10 14:59:31 +08:00
* hppa-tdep.c (hppa_push_dummy_frame): Remove hack which does not
appear to be working in any case.
This commit is contained in:
@ -1,3 +1,8 @@
|
|||||||
|
2003-03-18 J. Brobecker <brobecker@gnat.com>
|
||||||
|
|
||||||
|
* hppa-tdep.c (hppa_push_dummy_frame): Remove hack which does not
|
||||||
|
appear to be working in any case.
|
||||||
|
|
||||||
2003-03-18 J. Brobecker <brobecker@gnat.com>
|
2003-03-18 J. Brobecker <brobecker@gnat.com>
|
||||||
|
|
||||||
* observer.c (observer_test_first_observer): New static variable.
|
* observer.c (observer_test_first_observer): New static variable.
|
||||||
|
@ -1440,31 +1440,15 @@ hppa_push_dummy_frame (struct inferior_status *inf_status)
|
|||||||
CORE_ADDR int_buffer;
|
CORE_ADDR int_buffer;
|
||||||
double freg_buffer;
|
double freg_buffer;
|
||||||
|
|
||||||
/* Oh, what a hack. If we're trying to perform an inferior call
|
|
||||||
while the inferior is asleep, we have to make sure to clear
|
|
||||||
the "in system call" bit in the flag register (the call will
|
|
||||||
start after the syscall returns, so we're no longer in the system
|
|
||||||
call!) This state is kept in "inf_status", change it there.
|
|
||||||
|
|
||||||
We also need a number of horrid hacks to deal with lossage in the
|
|
||||||
PC queue registers (apparently they're not valid when the in syscall
|
|
||||||
bit is set). */
|
|
||||||
pc = hppa_target_read_pc (inferior_ptid);
|
pc = hppa_target_read_pc (inferior_ptid);
|
||||||
int_buffer = read_register (FLAGS_REGNUM);
|
int_buffer = read_register (FLAGS_REGNUM);
|
||||||
if (int_buffer & 0x2)
|
if (int_buffer & 0x2)
|
||||||
{
|
{
|
||||||
unsigned int sid;
|
const unsigned int sid = (pc >> 30) & 0x3;
|
||||||
int_buffer &= ~0x2;
|
|
||||||
write_inferior_status_register (inf_status, 0, int_buffer);
|
|
||||||
write_inferior_status_register (inf_status, PCOQ_HEAD_REGNUM, pc + 0);
|
|
||||||
write_inferior_status_register (inf_status, PCOQ_TAIL_REGNUM, pc + 4);
|
|
||||||
sid = (pc >> 30) & 0x3;
|
|
||||||
if (sid == 0)
|
if (sid == 0)
|
||||||
pcspace = read_register (SR4_REGNUM);
|
pcspace = read_register (SR4_REGNUM);
|
||||||
else
|
else
|
||||||
pcspace = read_register (SR4_REGNUM + 4 + sid);
|
pcspace = read_register (SR4_REGNUM + 4 + sid);
|
||||||
write_inferior_status_register (inf_status, PCSQ_HEAD_REGNUM, pcspace);
|
|
||||||
write_inferior_status_register (inf_status, PCSQ_TAIL_REGNUM, pcspace);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
pcspace = read_register (PCSQ_HEAD_REGNUM);
|
pcspace = read_register (PCSQ_HEAD_REGNUM);
|
||||||
|
Reference in New Issue
Block a user