[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