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.
This commit is contained in:
Andrew Cagney 2004-10-30 21:16:10 +00:00
parent 95ac2dcfbb
commit cd65c8f61a
6 changed files with 14 additions and 85 deletions

View file

@ -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

View file

@ -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

View file

@ -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 */

View file

@ -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);

View file

@ -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

View file

@ -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 *