From: Andrew Cagney Date: Sat, 30 Oct 2004 21:16:10 +0000 (+0000) Subject: 2004-10-30 Andrew Cagney X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=cd65c8f61a794bcdb966abae80f2151d3f28b3c4;p=binutils-gdb.git 2004-10-30 Andrew Cagney * 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. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 4e141eee6ff..6ec5b866d10 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,15 @@ 2004-10-30 Andrew Cagney + * 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 65fd5c1f0d6..32b5d6ebe1b 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 0b7878c58a0..d21ef1d648d 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 4adbd6be30c..76cb6366d2b 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 6df41d17645..acdf12598b5 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 8ae44717def..f2f9cae4783 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 *