aboutsummaryrefslogtreecommitdiff
path: root/gdb/config
diff options
context:
space:
mode:
authorJim Kingdon <jkingdon@engr.sgi.com>1994-03-25 01:38:24 +0000
committerJim Kingdon <jkingdon@engr.sgi.com>1994-03-25 01:38:24 +0000
commit4df6dcd10d2756fd9d31fac4e6b1768c6360a084 (patch)
tree1b300034706354718fdb301dc075d4688c622602 /gdb/config
parent27847c6f99c457a02816c2082fa91e0a8c408d00 (diff)
downloadgdb-4df6dcd10d2756fd9d31fac4e6b1768c6360a084.zip
gdb-4df6dcd10d2756fd9d31fac4e6b1768c6360a084.tar.gz
gdb-4df6dcd10d2756fd9d31fac4e6b1768c6360a084.tar.bz2
* 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.
Diffstat (limited to 'gdb/config')
-rw-r--r--gdb/config/mips/tm-mips.h21
1 files changed, 12 insertions, 9 deletions
diff --git a/gdb/config/mips/tm-mips.h b/gdb/config/mips/tm-mips.h
index 11326bf..fa214b4 100644
--- a/gdb/config/mips/tm-mips.h
+++ b/gdb/config/mips/tm-mips.h
@@ -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 *",