aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Cagney <cagney@redhat.com>2004-10-30 21:16:10 +0000
committerAndrew Cagney <cagney@redhat.com>2004-10-30 21:16:10 +0000
commitcd65c8f61a794bcdb966abae80f2151d3f28b3c4 (patch)
tree160c8e49b23ff7cac1cf267138c3cf68dce69a0e
parent95ac2dcfbb412c950079cd182299a7d572ed9f90 (diff)
downloadgdb-cd65c8f61a794bcdb966abae80f2151d3f28b3c4.zip
gdb-cd65c8f61a794bcdb966abae80f2151d3f28b3c4.tar.gz
gdb-cd65c8f61a794bcdb966abae80f2151d3f28b3c4.tar.bz2
2004-10-30 Andrew Cagney <cagney@gnu.org>
* alpha-tdep.c (alpha_setup_arbitrary_frame): Delete. * config/alpha/tm-alpha.h (SETUP_ARBITRARY_FRAME): Delete. (alpha_setup_arbitrary_frame): Delete. * mips-tdep.c (setup_arbitrary_frame): Delete. * config/mips/tm-mips.h (SETUP_ARBITRARY_FRAME): Delete. (setup_arbitrary_frame): Delete. * stack.c (parse_frame_specification_1): When specified, call create_new_frame with two parameters. Delete #ifdef SETUP_ARBITRARY_FRAME.
-rw-r--r--gdb/ChangeLog10
-rw-r--r--gdb/alpha-tdep.c24
-rw-r--r--gdb/config/alpha/tm-alpha.h14
-rw-r--r--gdb/config/mips/tm-mips.h16
-rw-r--r--gdb/mips-tdep.c24
-rw-r--r--gdb/stack.c11
6 files changed, 14 insertions, 85 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 4e141ee..6ec5b86 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,15 @@
2004-10-30 Andrew Cagney <cagney@gnu.org>
+ * alpha-tdep.c (alpha_setup_arbitrary_frame): Delete.
+ * config/alpha/tm-alpha.h (SETUP_ARBITRARY_FRAME): Delete.
+ (alpha_setup_arbitrary_frame): Delete.
+ * mips-tdep.c (setup_arbitrary_frame): Delete.
+ * config/mips/tm-mips.h (SETUP_ARBITRARY_FRAME): Delete.
+ (setup_arbitrary_frame): Delete.
+ * stack.c (parse_frame_specification_1): When specified, call
+ create_new_frame with two parameters. Delete #ifdef
+ SETUP_ARBITRARY_FRAME.
+
* config/mips/tm-mips.h (MIPS16_INSTLEN, MIPS_NUMREGS)
(MIPS_INSTLEN): Delete.
* mips-tdep.h (enum mips_insn_size): Rename MIPS32_INSN_SIZE and
diff --git a/gdb/alpha-tdep.c b/gdb/alpha-tdep.c
index 65fd5c1..32b5d6e 100644
--- a/gdb/alpha-tdep.c
+++ b/gdb/alpha-tdep.c
@@ -1233,30 +1233,6 @@ reinit_frame_cache_sfunc (char *args, int from_tty, struct cmd_list_element *c)
}
-/* ALPHA stack frames are almost impenetrable. When execution stops,
- we basically have to look at symbol information for the function
- that we stopped in, which tells us *which* register (if any) is
- the base of the frame pointer, and what offset from that register
- the frame itself is at.
-
- This presents a problem when trying to examine a stack in memory
- (that isn't executing at the moment), using the "frame" command. We
- don't have a PC, nor do we have any registers except SP.
-
- This routine takes two arguments, SP and PC, and tries to make the
- cached frames look as if these two arguments defined a frame on the
- cache. This allows the rest of info frame to extract the important
- arguments without difficulty. */
-
-struct frame_info *
-alpha_setup_arbitrary_frame (int argc, CORE_ADDR *argv)
-{
- if (argc != 2)
- error ("ALPHA frame specifications require two arguments: sp and pc");
-
- return create_new_frame (argv[0], argv[1]);
-}
-
/* Assuming NEXT_FRAME->prev is a dummy, return the frame ID of that
dummy frame. The frame ID's base needs to match the TOS value
saved by save_dummy_frame_tos(), and the PC match the dummy frame's
diff --git a/gdb/config/alpha/tm-alpha.h b/gdb/config/alpha/tm-alpha.h
index 0b7878c..d21ef1d 100644
--- a/gdb/config/alpha/tm-alpha.h
+++ b/gdb/config/alpha/tm-alpha.h
@@ -57,18 +57,4 @@ typedef struct alpha_extra_func_info
#define mips_extra_func_info alpha_extra_func_info
#define mips_extra_func_info_t alpha_extra_func_info_t
-/* It takes two values to specify a frame on the ALPHA. 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. */
-
-#define SETUP_ARBITRARY_FRAME(argc, argv) \
- alpha_setup_arbitrary_frame (argc, argv)
-extern struct frame_info *alpha_setup_arbitrary_frame (int, CORE_ADDR *);
-
#endif /* TM_ALPHA_H */
diff --git a/gdb/config/mips/tm-mips.h b/gdb/config/mips/tm-mips.h
index 4adbd6b..76cb636 100644
--- a/gdb/config/mips/tm-mips.h
+++ b/gdb/config/mips/tm-mips.h
@@ -80,22 +80,6 @@ typedef struct mips_extra_func_info
}
*mips_extra_func_info_t;
-/* 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)
-extern struct frame_info *setup_arbitrary_frame (int, CORE_ADDR *);
-
/* Functions for dealing with MIPS16 call and return stubs. */
#define DEPRECATED_IGNORE_HELPER_CALL(pc) mips_ignore_helper (pc)
extern int mips_ignore_helper (CORE_ADDR pc);
diff --git a/gdb/mips-tdep.c b/gdb/mips-tdep.c
index 6df41d1..acdf125 100644
--- a/gdb/mips-tdep.c
+++ b/gdb/mips-tdep.c
@@ -2326,30 +2326,6 @@ struct mips_objfile_private
char *contents;
};
-/* MIPS stack frames are almost impenetrable. When execution stops,
- we basically have to look at symbol information for the function
- that we stopped in, which tells us *which* register (if any) is
- the base of the frame pointer, and what offset from that register
- the frame itself is at.
-
- This presents a problem when trying to examine a stack in memory
- (that isn't executing at the moment), using the "frame" command. We
- don't have a PC, nor do we have any registers except SP.
-
- This routine takes two arguments, SP and PC, and tries to make the
- cached frames look as if these two arguments defined a frame on the
- cache. This allows the rest of info frame to extract the important
- arguments without difficulty. */
-
-struct frame_info *
-setup_arbitrary_frame (int argc, CORE_ADDR *argv)
-{
- if (argc != 2)
- error ("MIPS frame specifications require two arguments: sp and pc");
-
- return create_new_frame (argv[0], argv[1]);
-}
-
/* According to the current ABI, should the type be passed in a
floating-point register (assuming that there is space)? When there
is no FPU, FP are not even considered as possibile candidates for
diff --git a/gdb/stack.c b/gdb/stack.c
index 8ae4471..f2f9cae 100644
--- a/gdb/stack.c
+++ b/gdb/stack.c
@@ -828,15 +828,12 @@ parse_frame_specification_1 (const char *frame_exp, const char *message,
/* We couldn't identify the frame as an existing frame, but
perhaps we can create one with a single argument. */
-#ifdef SETUP_ARBITRARY_FRAME
- return SETUP_ARBITRARY_FRAME (numargs, addrs);
-#else
- /* Usual case. Do it here rather than have everyone supply a
- SETUP_ARBITRARY_FRAME that does this. */
if (numargs == 1)
return create_new_frame (addrs[0], 0);
- error ("Too many args in frame specification");
-#endif
+ else if (numargs == 2)
+ return create_new_frame (addrs[0], addrs[1]);
+ else
+ error ("Too many args in frame specification");
}
struct frame_info *