From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 4694 invoked by alias); 7 Jan 2003 16:30:01 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 3474 invoked from network); 7 Jan 2003 16:28:38 -0000 Received: from unknown (HELO localhost.redhat.com) (216.138.202.10) by 209.249.29.67 with SMTP; 7 Jan 2003 16:28:38 -0000 Received: from redhat.com (localhost [127.0.0.1]) by localhost.redhat.com (Postfix) with ESMTP id 6F0A63DA9 for ; Tue, 7 Jan 2003 11:28:28 -0500 (EST) Message-ID: <3E1B002C.7020508@redhat.com> Date: Tue, 07 Jan 2003 16:30:00 -0000 From: Andrew Cagney User-Agent: Mozilla/5.0 (X11; U; NetBSD macppc; en-US; rv:1.0.1) Gecko/20021211 X-Accept-Language: en-us, en MIME-Version: 1.0 To: gdb-patches@sources.redhat.com Subject: [commit] Don't directly modify frame->frame Content-Type: multipart/mixed; boundary="------------030209040908050401080902" X-SW-Source: 2003-01/txt/msg00279.txt.bz2 This is a multi-part message in MIME format. --------------030209040908050401080902 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-length: 435 Hello, The attached replaces several more cases of `frame->frame = ...' with the method deprecated_update_frame_base_hack(). There are two cases where this occures: - code that failed to correcctly compute frame_chain() (and is fixing it up after the event (via init frame extra info)). - code that is using a scratch frame (rather than refactor the code to use methods that apply to the frame's sub fields). committed, Andrew --------------030209040908050401080902 Content-Type: text/plain; name="diffs" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="diffs" Content-length: 5682 2003-01-07 Andrew Cagney * arm-tdep.c (arm_init_extra_frame_info): Use deprecated_update_frame_base_hack. * xstormy16-tdep.c (xstormy16_scan_prologue): Ditto. * mn10300-tdep.c (analyze_dummy_frame): Ditto. (fix_frame_pointer): Ditto. (mn10300_analyze_prologue): Ditto. Index: arm-tdep.c =================================================================== RCS file: /cvs/src/src/gdb/arm-tdep.c,v retrieving revision 1.92 diff -u -r1.92 arm-tdep.c --- arm-tdep.c 7 Jan 2003 14:51:10 -0000 1.92 +++ arm-tdep.c 7 Jan 2003 16:19:58 -0000 @@ -1131,9 +1131,7 @@ /* FIXME: What about thumb mode? */ fi->extra_info->framereg = ARM_SP_REGNUM; - fi->frame = - read_memory_integer (get_frame_saved_regs (fi)[fi->extra_info->framereg], - REGISTER_RAW_SIZE (fi->extra_info->framereg)); + deprecated_update_frame_base_hack (fi, read_memory_integer (get_frame_saved_regs (fi)[fi->extra_info->framereg], REGISTER_RAW_SIZE (fi->extra_info->framereg))); fi->extra_info->framesize = 0; fi->extra_info->frameoffset = 0; @@ -1144,23 +1142,22 @@ if (!fi->next) /* This is the innermost frame? */ - fi->frame = read_register (fi->extra_info->framereg); + deprecated_update_frame_base_hack (fi, read_register (fi->extra_info->framereg)); else if (DEPRECATED_PC_IN_CALL_DUMMY (get_frame_pc (fi->next), 0, 0)) /* Next inner most frame is a dummy, just grab its frame. Dummy frames always have the same FP as their caller. */ - fi->frame = fi->next->frame; + deprecated_update_frame_base_hack (fi, fi->next->frame); else if (fi->extra_info->framereg == ARM_FP_REGNUM || fi->extra_info->framereg == THUMB_FP_REGNUM) { /* not the innermost frame */ /* If we have an FP, the callee saved it. */ if (get_frame_saved_regs (get_next_frame (fi))[fi->extra_info->framereg] != 0) - fi->frame = - read_memory_integer (get_frame_saved_regs (get_next_frame (fi))[fi->extra_info->framereg], 4); + deprecated_update_frame_base_hack (fi, read_memory_integer (get_frame_saved_regs (get_next_frame (fi))[fi->extra_info->framereg], 4)); else if (fromleaf) /* If we were called by a frameless fn. then our frame is still in the frame pointer register on the board... */ - fi->frame = read_fp (); + deprecated_update_frame_base_hack (fi, read_fp ()); } /* Calculate actual addresses of saved registers using offsets Index: frame.c =================================================================== RCS file: /cvs/src/src/gdb/frame.c,v retrieving revision 1.51 diff -u -r1.51 frame.c --- frame.c 6 Jan 2003 21:50:25 -0000 1.51 +++ frame.c 7 Jan 2003 16:19:59 -0000 @@ -1,3 +1,4 @@ +#define FRAME_C /* Cache and manage frames for GDB, the GNU debugger. Copyright 1986, 1987, 1989, 1991, 1994, 1995, 1996, 1998, 2000, Index: mn10300-tdep.c =================================================================== RCS file: /cvs/src/src/gdb/mn10300-tdep.c,v retrieving revision 1.46 diff -u -r1.46 mn10300-tdep.c --- mn10300-tdep.c 7 Jan 2003 14:51:10 -0000 1.46 +++ mn10300-tdep.c 7 Jan 2003 16:19:59 -0000 @@ -162,7 +162,7 @@ dummy->next = NULL; dummy->prev = NULL; deprecated_update_frame_pc_hack (dummy, pc); - dummy->frame = frame; + deprecated_update_frame_base_hack (dummy, frame); dummy->extra_info->status = 0; dummy->extra_info->stack_size = 0; memset (get_frame_saved_regs (dummy), '\000', SIZEOF_FRAME_SAVED_REGS); @@ -210,9 +210,9 @@ if (fi && fi->next == NULL) { if (fi->extra_info->status & MY_FRAME_IN_SP) - fi->frame = read_sp () - stack_size; + deprecated_update_frame_base_hack (fi, read_sp () - stack_size); else if (fi->extra_info->status & MY_FRAME_IN_FP) - fi->frame = read_register (A3_REGNUM); + deprecated_update_frame_base_hack (fi, read_register (A3_REGNUM)); } } @@ -437,7 +437,7 @@ if (fi && buf[0] == 0xf0 && buf[1] == 0xfc) { if (fi->next == NULL) - fi->frame = read_sp (); + deprecated_update_frame_base_hack (fi, read_sp ()); return get_frame_pc (fi); } @@ -446,7 +446,7 @@ if (fi && get_frame_pc (fi) == func_addr) { if (fi->next == NULL) - fi->frame = read_sp (); + deprecated_update_frame_base_hack (fi, read_sp ()); return get_frame_pc (fi); } @@ -495,7 +495,7 @@ { /* Fix fi->frame since it's bogus at this point. */ if (fi && fi->next == NULL) - fi->frame = read_sp (); + deprecated_update_frame_base_hack (fi, read_sp ()); /* Note if/where callee saved registers were saved. */ set_movm_offsets (fi, movm_args); @@ -508,7 +508,7 @@ { /* Fix fi->frame since it's bogus at this point. */ if (fi && fi->next == NULL) - fi->frame = read_sp (); + deprecated_update_frame_base_hack (fi, read_sp ()); /* Note if/where callee saved registers were saved. */ set_movm_offsets (fi, movm_args); Index: xstormy16-tdep.c =================================================================== RCS file: /cvs/src/src/gdb/xstormy16-tdep.c,v retrieving revision 1.19 diff -u -r1.19 xstormy16-tdep.c --- xstormy16-tdep.c 7 Jan 2003 14:51:11 -0000 1.19 +++ xstormy16-tdep.c 7 Jan 2003 16:20:00 -0000 @@ -594,12 +594,12 @@ if (fi->extra_info->frameless_p) { get_frame_saved_regs (fi)[E_SP_REGNUM] = sp - fi->extra_info->framesize; - fi->frame = sp; + deprecated_update_frame_base_hack (fi, sp); } else { get_frame_saved_regs (fi)[E_SP_REGNUM] = fp - fi->extra_info->framesize; - fi->frame = fp; + deprecated_update_frame_base_hack (fi, fp); } /* So far only offsets to the beginning of the frame are --------------030209040908050401080902--