This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [RFA] mips_pop_frame



Index: mips-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/mips-tdep.c,v
retrieving revision 1.99
diff -p -r1.99 mips-tdep.c
*** mips-tdep.c 10 Aug 2002 01:09:10 -0000      1.99
--- mips-tdep.c 13 Aug 2002 21:18:06 -0000
*************** mips_pop_frame (void)
*** 3134,3146 ****
    if (frame->saved_regs == NULL)
      FRAME_INIT_SAVED_REGS (frame);
    for (regnum = 0; regnum < NUM_REGS; regnum++)
!     {
!       if (regnum != SP_REGNUM && regnum != PC_REGNUM
!         && frame->saved_regs[regnum])
!       write_register (regnum,
!                       read_memory_integer (frame->saved_regs[regnum],
!                                            MIPS_SAVED_REGSIZE));
!     }
    write_register (SP_REGNUM, new_sp);
    flush_cached_frames ();

--- 3136,3157 ----
    if (frame->saved_regs == NULL)
      FRAME_INIT_SAVED_REGS (frame);
    for (regnum = 0; regnum < NUM_REGS; regnum++)
!     if (regnum != SP_REGNUM && regnum != PC_REGNUM
!       && frame->saved_regs[regnum])
!       {
!       /* Floating point registers must not be sign extended,
!          in case MIPS_SAVED_REGSIZE = 4 but sizeof (FP0_REGNUM) == 8.  */
!
!       if (FP0_REGNUM <= regnum && regnum < FP0_REGNUM + 32)
!         write_register (regnum,
!                         read_memory_unsigned_integer (frame->saved_regs[regnum],
!                                                       MIPS_SAVED_REGSIZE));
!       else
!         write_register (regnum,
!                         read_memory_integer (frame->saved_regs[regnum],
!                                              MIPS_SAVED_REGSIZE));
!       }
!
    write_register (SP_REGNUM, new_sp);
    flush_cached_frames ();
So that's why the FP registers are wrong!  Yes, fine.

Andrew



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]