From f621c63e01043dcc3a3e0e6db1ce26702cc667f2 Mon Sep 17 00:00:00 2001 From: Andrew Cagney Date: Sun, 5 May 2002 01:55:37 +0000 Subject: [PATCH] * sparc-tdep.c (sparc_get_saved_register): Comment why get_prev_frame call is safe. --- gdb/ChangeLog | 5 +++++ gdb/sparc-tdep.c | 10 ++++++++++ 2 files changed, 15 insertions(+) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index c7e3758bb2..214793733a 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2002-05-04 Andrew Cagney + + * sparc-tdep.c (sparc_get_saved_register): Comment why + get_prev_frame call is safe. + 2002-05-04 Andrew Cagney * frame.h (select_frame): Delete level parameter. diff --git a/gdb/sparc-tdep.c b/gdb/sparc-tdep.c index 28c51dc8c6..6461ca088f 100644 --- a/gdb/sparc-tdep.c +++ b/gdb/sparc-tdep.c @@ -855,10 +855,20 @@ sparc_get_saved_register (char *raw_buffer, int *optimized, CORE_ADDR *addrp, addr = frame1->frame + (regnum - G0_REGNUM) * SPARC_INTREG_SIZE - (FP_REGISTER_BYTES + 8 * SPARC_INTREG_SIZE); else if (regnum >= I0_REGNUM && regnum < I0_REGNUM + 8) + /* NOTE: cagney/2002-05-04: The call to get_prev_frame() + is safe/cheap - there will always be a prev frame. + This is because frame1 is initialized to frame->next + (frame1->prev == frame) and is then advanced towards + the innermost (next) frame. */ addr = (get_prev_frame (frame1)->extra_info->bottom + (regnum - I0_REGNUM) * SPARC_INTREG_SIZE + FRAME_SAVED_I0); else if (regnum >= L0_REGNUM && regnum < L0_REGNUM + 8) + /* NOTE: cagney/2002-05-04: The call to get_prev_frame() + is safe/cheap - there will always be a prev frame. + This is because frame1 is initialized to frame->next + (frame1->prev == frame) and is then advanced towards + the innermost (next) frame. */ addr = (get_prev_frame (frame1)->extra_info->bottom + (regnum - L0_REGNUM) * SPARC_INTREG_SIZE + FRAME_SAVED_L0); -- 2.34.1