From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 32479 invoked by alias); 29 Sep 2003 13:28:07 -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 32469 invoked from network); 29 Sep 2003 13:28:06 -0000 Received: from unknown (HELO dublin.act-europe.fr) (212.157.227.154) by sources.redhat.com with SMTP; 29 Sep 2003 13:28:06 -0000 Received: from localhost (localhost [127.0.0.1]) by amavis.act-europe.fr (Postfix) with ESMTP id 23984229FBC for ; Mon, 29 Sep 2003 15:28:05 +0200 (MET DST) Received: from dublin.act-europe.fr ([127.0.0.1]) by localhost (dublin.act-europe.fr [127.0.0.1:10024]) (amavisd-new) with ESMTP id 01696-08 for ; Mon, 29 Sep 2003 15:28:01 +0200 (MET DST) Received: from berne.int.act-europe.fr (berne.act-europe.fr [10.10.0.165]) by dublin.act-europe.fr (Postfix) with ESMTP id 91326229FBB for ; Mon, 29 Sep 2003 15:28:01 +0200 (MET DST) Received: by berne.int.act-europe.fr (Postfix, from userid 560) id BD894592B; Mon, 29 Sep 2003 09:28:00 -0400 (EDT) Date: Mon, 29 Sep 2003 13:28:00 -0000 From: Jerome Guitton To: gdb-patches@sources.redhat.com Subject: [commit] ARM : one-line prologue analysis Message-ID: <20030929132800.GA26586@act-europe.fr> References: <20030925204452.GA15754@act-europe.fr> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="k1lZvvs/B4yU6o8G" Content-Disposition: inline In-Reply-To: <20030925204452.GA15754@act-europe.fr> User-Agent: Mutt/1.4i X-Virus-Scanned: by amavisd-new X-SW-Source: 2003-09/txt/msg00617.txt.bz2 --k1lZvvs/B4yU6o8G Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-length: 58 I merged the two patches, and committed them. -- Jerome --k1lZvvs/B4yU6o8G Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="arm.dif" Content-length: 1727 2003-09-29 Jerome Guitton * arm-tdep.c (arm_make_prologue_cache): Use trad_frame_addr_p to test if the register has been saved on the stack. (arm_scan_prologue_cache): When analysing the instruction "str lr, [sp, #-4]", save the address where lr has been stored. Index: arm-tdep.c =================================================================== RCS file: /cvs/src/src/gdb/arm-tdep.c,v retrieving revision 1.151 diff -c -p -r1.151 arm-tdep.c *** arm-tdep.c 25 Sep 2003 14:21:00 -0000 1.151 --- arm-tdep.c 29 Sep 2003 13:11:51 -0000 *************** arm_scan_prologue (struct frame_info *ne *** 845,851 **** } else if (insn == 0xe52de004) /* str lr, [sp, #-4]! */ { ! /* Function is frameless: extra_info defaults OK? */ continue; } else if ((insn & 0xffff0000) == 0xe92d0000) --- 845,852 ---- } else if (insn == 0xe52de004) /* str lr, [sp, #-4]! */ { ! sp_offset -= 4; ! cache->saved_regs[ARM_LR_REGNUM].addr = sp_offset; continue; } else if ((insn & 0xffff0000) == 0xe92d0000) *************** arm_make_prologue_cache (struct frame_in *** 967,973 **** /* Calculate actual addresses of saved registers using offsets determined by arm_scan_prologue. */ for (reg = 0; reg < NUM_REGS; reg++) ! if (cache->saved_regs[reg].addr != 0) cache->saved_regs[reg].addr += cache->prev_sp; return cache; --- 968,974 ---- /* Calculate actual addresses of saved registers using offsets determined by arm_scan_prologue. */ for (reg = 0; reg < NUM_REGS; reg++) ! if (trad_frame_addr_p (cache->saved_regs, reg)) cache->saved_regs[reg].addr += cache->prev_sp; return cache; --k1lZvvs/B4yU6o8G--