* config/mips/tm-mips.h (SETUP_ARBITRARY_FRAME): Revise comment
authorJim Kingdon <jkingdon@engr.sgi.com>
Fri, 25 Mar 1994 01:38:24 +0000 (01:38 +0000)
committerJim Kingdon <jkingdon@engr.sgi.com>
Fri, 25 Mar 1994 01:38:24 +0000 (01:38 +0000)
regarding using the PC--using the PC is necessary and all the
FIXME comments in the world won't make it go away.

gdb/ChangeLog
gdb/config/mips/tm-mips.h

index 06de4db60413ae7195c345a3e79f346ed0f758fd..3bd9f03bc78f58f0778fd0e0f7e4c1c7155dbc30 100644 (file)
@@ -1,5 +1,9 @@
 Thu Mar 24 07:12:09 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)
 
+       * config/mips/tm-mips.h (SETUP_ARBITRARY_FRAME): Revise comment
+       regarding using the PC--using the PC is necessary and all the
+       FIXME comments in the world won't make it go away.
+
        * valops.c (value_at, value_at_lazy): Give error if we dereference
        a pointer to void.
        * gdbtypes.h: Fix comments regarding TYPE_CODE_VOID.
index 11326bf145b21ba2df6856466e2fcc5fe79652b4..fa214b478ae5914166b8151dfa1e1c069d53d39d 100644 (file)
@@ -431,15 +431,18 @@ typedef struct mips_extra_func_info {
                                  fi->proc_desc->pdr.frameoffset); \
   }
 
-/* It takes two values to specify a frame on the MIPS.  Sigh.
-
-   In fact, at the moment, the *PC* is the primary value that sets up
-   a frame.  The PC is looked up to see what function it's in; symbol
-   information from that function tells us which register is the frame
-   pointer base, and what offset from there is the "virtual frame pointer".
-   (This is usually an offset from SP.)  FIXME -- this should be cleaned
-   up so that the primary value is the SP, and the PC is used to disambiguate
-   multiple functions with the same SP that are at different stack levels. */
+/* It takes two values to specify a frame on the MIPS.
+
+   In fact, the *PC* is the primary value that sets up a frame.  The
+   PC is looked up to see what function it's in; symbol information
+   from that function tells us which register is the frame pointer
+   base, and what offset from there is the "virtual frame pointer".
+   (This is usually an offset from SP.)  On most non-MIPS machines,
+   the primary value is the SP, and the PC, if needed, disambiguates
+   multiple functions with the same SP.  But on the MIPS we can't do
+   that since the PC is not stored in the same part of the frame every
+   time.  This does not seem to be a very clever way to set up frames,
+   but there is nothing we can do about that).  */
 
 #define SETUP_ARBITRARY_FRAME(argc, argv) setup_arbitrary_frame (argc, argv)
 /* FIXME:  Depends on equivalence between FRAME and "struct frame_info *",