[RFA/hppa] Remove hack in hppa_push_dummy_frame...
Joel Brobecker
brobecker@gnat.com
Tue Mar 18 18:28:00 GMT 2003
> >2003-03-17 J. Brobecker <brobecker@gnat.com>
> >
> > * hppa-tdep.c (hppa_push_dummy_frame): Remove hack which does not
> > appear to be working in any case.
> >
> Yes!
I knew you'd like it :-).
But did I forget to attach the patch? :-(. Here is the change I just
checked in.
--
Joel
-------------- next part --------------
Index: hppa-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/hppa-tdep.c,v
retrieving revision 1.56
diff -c -3 -p -r1.56 hppa-tdep.c
*** hppa-tdep.c 17 Mar 2003 23:25:08 -0000 1.56
--- hppa-tdep.c 18 Mar 2003 02:18:23 -0000
*************** hppa_push_dummy_frame (struct inferior_s
*** 1440,1470 ****
CORE_ADDR int_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);
int_buffer = read_register (FLAGS_REGNUM);
if (int_buffer & 0x2)
{
! unsigned int sid;
! 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)
pcspace = read_register (SR4_REGNUM);
else
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
pcspace = read_register (PCSQ_HEAD_REGNUM);
--- 1440,1454 ----
CORE_ADDR int_buffer;
double freg_buffer;
pc = hppa_target_read_pc (inferior_ptid);
int_buffer = read_register (FLAGS_REGNUM);
if (int_buffer & 0x2)
{
! const unsigned int sid = (pc >> 30) & 0x3;
if (sid == 0)
pcspace = read_register (SR4_REGNUM);
else
pcspace = read_register (SR4_REGNUM + 4 + sid);
}
else
pcspace = read_register (PCSQ_HEAD_REGNUM);
More information about the Gdb-patches
mailing list