2003-03-12 Andrew Cagney <cagney@redhat.com>

* frame.c (get_saved_register): Delete function.
	* xstormy16-tdep.c: Update comment.
	* regcache.h: Update comments.
	* sparc-tdep.c (sparc_init_extra_frame_info): Instead of
	get_saved_register and extract_address, use
	frame_read_unsigned_register.
	(sparc_frame_saved_pc): Ditto.
	(sparc_get_saved_register): Instead of get_saved_register, use
	frame_register.
	(sparc_pop_frame): Ditto.
	* frame.h (get_saved_register): Delete declaration.
	* findvar.c: Update comments.
	(value_of_register): Call frame_register instead of
	get_saved_register.
	(value_from_register): Ditto.
	* config/sparc/tm-sparc.h: Update comment.
	* breakpoint.c: Update comment.

Index: doc/ChangeLog
2003-03-12  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Delete
	references to get_saved_register.
This commit is contained in:
Andrew Cagney 2003-03-14 17:07:01 +00:00
parent 129c1cd6c2
commit ac2adee56d
15 changed files with 103 additions and 90 deletions

View file

@ -326,9 +326,9 @@ sparc_init_extra_frame_info (int fromleaf, struct frame_info *fi)
else
{
/* Should we adjust for stack bias here? */
get_saved_register (buf, 0, 0, fi, FP_REGNUM, 0);
deprecated_update_frame_base_hack (fi, extract_address (buf, REGISTER_RAW_SIZE (FP_REGNUM)));
ULONGEST tmp;
frame_read_unsigned_register (fi, FP_REGNUM, &tmp);
deprecated_update_frame_base_hack (fi, tmp);
if (GDB_TARGET_IS_SPARC64 && (get_frame_base (fi) & 1))
deprecated_update_frame_base_hack (fi, get_frame_base (fi) + 2047);
}
@ -367,8 +367,11 @@ sparc_init_extra_frame_info (int fromleaf, struct frame_info *fi)
get_frame_extra_info (fi)->sp_offset = offset;
/* Overwrite the frame's address with the value in %i7. */
get_saved_register (buf, 0, 0, fi, I7_REGNUM, 0);
deprecated_update_frame_base_hack (fi, extract_address (buf, REGISTER_RAW_SIZE (I7_REGNUM)));
{
ULONGEST tmp;
frame_read_unsigned_register (fi, I7_REGNUM, &tmp);
deprecated_update_frame_base_hack (fi, tmp);
}
if (GDB_TARGET_IS_SPARC64 && (get_frame_base (fi) & 1))
deprecated_update_frame_base_hack (fi, get_frame_base (fi) + 2047);
@ -487,9 +490,11 @@ sparc_frame_saved_pc (struct frame_info *frame)
saved_pc_offset = 12;
/* The sigcontext address is contained in register O2. */
get_saved_register (buf, (int *) NULL, (CORE_ADDR *) NULL,
frame, O0_REGNUM + 2, (enum lval_type *) NULL);
sigcontext_addr = extract_address (buf, REGISTER_RAW_SIZE (O0_REGNUM + 2));
{
ULONGEST tmp;
frame_read_unsigned_register (frame, O0_REGNUM + 2, &tmp);
sigcontext_addr = tmp;
}
/* Don't cause a memory_error when accessing sigcontext in case the
stack layout has changed or the stack is corrupt. */
@ -505,9 +510,9 @@ sparc_frame_saved_pc (struct frame_info *frame)
{
/* A frameless function interrupted by a signal did not save
the PC, it is still in %o7. */
get_saved_register (buf, (int *) NULL, (CORE_ADDR *) NULL,
frame, O7_REGNUM, (enum lval_type *) NULL);
return PC_ADJUST (extract_address (buf, SPARC_INTREG_SIZE));
ULONGEST tmp;
frame_read_unsigned_register (frame, O7_REGNUM, &tmp);
return PC_ADJUST (tmp);
}
if (get_frame_extra_info (frame)->flat)
addr = get_frame_extra_info (frame)->pc_addr;
@ -936,8 +941,9 @@ sparc_get_saved_register (char *raw_buffer, int *optimized, CORE_ADDR *addrp,
else if (regnum >= O0_REGNUM && regnum < O0_REGNUM + 8)
{
/* Outs become ins. */
get_saved_register (raw_buffer, optimized, addrp, frame1,
(regnum - O0_REGNUM + I0_REGNUM), lval);
int realnum;
frame_register (frame1, (regnum - O0_REGNUM + I0_REGNUM),
optimized, lval, addrp, &realnum, raw_buffer);
return;
}
}
@ -1090,10 +1096,10 @@ sparc_push_dummy_frame (void)
I think few ports of GDB get right--if you are popping a frame
which does not save some register that *is* saved by a more inner
frame (such a frame will never be a dummy frame because dummy
frames save all registers). Rewriting pop_frame to use
get_saved_register would solve this problem and also get rid of the
ugly duplication between sparc_frame_find_saved_regs and
get_saved_register.
frames save all registers).
NOTE: cagney/2003-03-12: Since pop_frame has been rewritten to use
frame_unwind_register() the need for this function is questionable.
Stores, into an array of CORE_ADDR,
the addresses of the saved registers of frame described by FRAME_INFO.
@ -1369,12 +1375,9 @@ sparc_pop_frame (void)
/* I think this happens only in the innermost frame, if so then
it is a complicated way of saying
"pc = read_register (O7_REGNUM);". */
char *buf;
buf = alloca (MAX_REGISTER_RAW_SIZE);
get_saved_register (buf, 0, 0, frame, O7_REGNUM, 0);
pc = PC_ADJUST (extract_address
(buf, REGISTER_RAW_SIZE (O7_REGNUM)));
ULONGEST tmp;
frame_read_unsigned_register (frame, O7_REGNUM, &tmp);
pc = PC_ADJUST (tmp);
}
write_register (PC_REGNUM, pc);