* frame.c (find_saved_register): Delete #ifdef
HAVE_REGISTER_WINDOWS code. * config/sparc/tm-sparc.h: Update comments. * config/i960/tm-i960.h (HAVE_REGISTER_WINDOWS): Delete macro. * gdbint.texinfo (Target Architecture Definition): Delete definition of HAVE_REGISTER_WINDOWS.
This commit is contained in:
parent
92e8c9ed1f
commit
d49d1e0a2f
@ -1,3 +1,10 @@
|
|||||||
|
2002-04-21 Andrew Cagney <ac131313@redhat.com>
|
||||||
|
|
||||||
|
* frame.c (find_saved_register): Delete #ifdef
|
||||||
|
HAVE_REGISTER_WINDOWS code.
|
||||||
|
* config/sparc/tm-sparc.h: Update comments.
|
||||||
|
* config/i960/tm-i960.h (HAVE_REGISTER_WINDOWS): Delete macro.
|
||||||
|
|
||||||
2002-04-21 Andrew Cagney <ac131313@redhat.com>
|
2002-04-21 Andrew Cagney <ac131313@redhat.com>
|
||||||
|
|
||||||
* i960-tdep.c (i960_find_saved_register): New function.
|
* i960-tdep.c (i960_find_saved_register): New function.
|
||||||
|
@ -116,8 +116,6 @@ extern CORE_ADDR saved_pc_after_call ();
|
|||||||
|
|
||||||
/* The i960 has register windows, sort of. */
|
/* The i960 has register windows, sort of. */
|
||||||
|
|
||||||
#define HAVE_REGISTER_WINDOWS
|
|
||||||
|
|
||||||
extern void i960_get_saved_register (char *raw_buffer,
|
extern void i960_get_saved_register (char *raw_buffer,
|
||||||
int *optimized,
|
int *optimized,
|
||||||
CORE_ADDR *addrp,
|
CORE_ADDR *addrp,
|
||||||
|
@ -468,9 +468,8 @@ extern CORE_ADDR sparc_skip_prologue (CORE_ADDR, int);
|
|||||||
/* time of the register saves. */ \
|
/* time of the register saves. */ \
|
||||||
int sp_offset;
|
int sp_offset;
|
||||||
|
|
||||||
/* We need to override GET_SAVED_REGISTER so that we can deal with the way
|
/* We need to override GET_SAVED_REGISTER so that we can deal with the
|
||||||
outs change into ins in different frames. HAVE_REGISTER_WINDOWS can't
|
way outs change into ins in different frames. */
|
||||||
deal with this case and also handle flat frames at the same time. */
|
|
||||||
|
|
||||||
void sparc_get_saved_register (char *raw_buffer,
|
void sparc_get_saved_register (char *raw_buffer,
|
||||||
int *optimized,
|
int *optimized,
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
2002-04-21 Andrew Cagney <ac131313@redhat.com>
|
||||||
|
|
||||||
|
* gdbint.texinfo (Target Architecture Definition): Delete
|
||||||
|
definition of HAVE_REGISTER_WINDOWS.
|
||||||
|
|
||||||
2002-04-19 Eli Zaretskii <eliz@is.elta.co.il>
|
2002-04-19 Eli Zaretskii <eliz@is.elta.co.il>
|
||||||
|
|
||||||
* gdbint.texinfo (Releasing GDB, Coding): Fix typos. Reported by
|
* gdbint.texinfo (Releasing GDB, Coding): Fix typos. Reported by
|
||||||
|
@ -3044,10 +3044,6 @@ pointer. It examines the current state of the machine as needed.
|
|||||||
Define this if you need to supply your own definition for the function
|
Define this if you need to supply your own definition for the function
|
||||||
@code{get_saved_register}.
|
@code{get_saved_register}.
|
||||||
|
|
||||||
@item HAVE_REGISTER_WINDOWS
|
|
||||||
@findex HAVE_REGISTER_WINDOWS
|
|
||||||
Define this if the target has register windows.
|
|
||||||
|
|
||||||
@item REGISTER_IN_WINDOW_P (@var{regnum})
|
@item REGISTER_IN_WINDOW_P (@var{regnum})
|
||||||
@findex REGISTER_IN_WINDOW_P
|
@findex REGISTER_IN_WINDOW_P
|
||||||
Define this to be an expression that is 1 if the given register is in
|
Define this to be an expression that is 1 if the given register is in
|
||||||
|
33
gdb/frame.c
33
gdb/frame.c
@ -43,39 +43,6 @@ find_saved_register (struct frame_info *frame, int regnum)
|
|||||||
if (frame == NULL) /* No regs saved if want current frame */
|
if (frame == NULL) /* No regs saved if want current frame */
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
#ifdef HAVE_REGISTER_WINDOWS
|
|
||||||
/* We assume that a register in a register window will only be saved
|
|
||||||
in one place (since the name changes and/or disappears as you go
|
|
||||||
towards inner frames), so we only call get_frame_saved_regs on
|
|
||||||
the current frame. This is directly in contradiction to the
|
|
||||||
usage below, which assumes that registers used in a frame must be
|
|
||||||
saved in a lower (more interior) frame. This change is a result
|
|
||||||
of working on a register window machine; get_frame_saved_regs
|
|
||||||
always returns the registers saved within a frame, within the
|
|
||||||
context (register namespace) of that frame. */
|
|
||||||
|
|
||||||
/* However, note that we don't want this to return anything if
|
|
||||||
nothing is saved (if there's a frame inside of this one). Also,
|
|
||||||
callers to this routine asking for the stack pointer want the
|
|
||||||
stack pointer saved for *this* frame; this is returned from the
|
|
||||||
next frame. */
|
|
||||||
|
|
||||||
if (REGISTER_IN_WINDOW_P (regnum))
|
|
||||||
{
|
|
||||||
frame1 = get_next_frame (frame);
|
|
||||||
if (!frame1)
|
|
||||||
return 0; /* Registers of this frame are active. */
|
|
||||||
|
|
||||||
/* Get the SP from the next frame in; it will be this
|
|
||||||
current frame. */
|
|
||||||
if (regnum != SP_REGNUM)
|
|
||||||
frame1 = frame;
|
|
||||||
|
|
||||||
FRAME_INIT_SAVED_REGS (frame1);
|
|
||||||
return frame1->saved_regs[regnum]; /* ... which might be zero */
|
|
||||||
}
|
|
||||||
#endif /* HAVE_REGISTER_WINDOWS */
|
|
||||||
|
|
||||||
/* Note that this next routine assumes that registers used in
|
/* Note that this next routine assumes that registers used in
|
||||||
frame x will be saved only in the frame that x calls and
|
frame x will be saved only in the frame that x calls and
|
||||||
frames interior to it. This is not true on the sparc, but the
|
frames interior to it. This is not true on the sparc, but the
|
||||||
|
Loading…
x
Reference in New Issue
Block a user