From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 31323 invoked by alias); 9 May 2006 19:58:24 -0000 Received: (qmail 31311 invoked by uid 22791); 9 May 2006 19:58:23 -0000 X-Spam-Check-By: sourceware.org Received: from sibelius.xs4all.nl (HELO sibelius.xs4all.nl) (82.92.89.47) by sourceware.org (qpsmtpd/0.31) with ESMTP; Tue, 09 May 2006 19:57:50 +0000 Received: from elgar.sibelius.xs4all.nl (root@elgar.sibelius.xs4all.nl [192.168.0.2]) by sibelius.xs4all.nl (8.13.4/8.13.4) with ESMTP id k49JvkVt030403; Tue, 9 May 2006 21:57:46 +0200 (CEST) Received: from elgar.sibelius.xs4all.nl (kettenis@localhost.sibelius.xs4all.nl [127.0.0.1]) by elgar.sibelius.xs4all.nl (8.13.6/8.13.6) with ESMTP id k49JvkuF028044; Tue, 9 May 2006 21:57:46 +0200 (CEST) Received: (from kettenis@localhost) by elgar.sibelius.xs4all.nl (8.13.6/8.13.6/Submit) id k49JvkSQ029319; Tue, 9 May 2006 21:57:46 +0200 (CEST) Date: Tue, 09 May 2006 19:58:00 -0000 Message-Id: <200605091957.k49JvkSQ029319@elgar.sibelius.xs4all.nl> From: Mark Kettenis To: schwab@suse.de CC: gdb-patches@sourceware.org In-reply-to: (message from Andreas Schwab on Tue, 09 May 2006 16:06:22 +0200) Subject: Re: .eh_frame vs. .debug_frame register encoding References: Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2006-05/txt/msg00179.txt.bz2 > From: Andreas Schwab > Date: Tue, 09 May 2006 16:06:22 +0200 > > On powerpc the register encoding inside .eh_frame differs from the one in > .debug_frame. The former is using GCC internal numbering, whereas the > latter is (of course) using the DWARF numbering. So when gdb is reading > .eh_frame it needs to translate the register numbers (one important > difference is that the lr register has a different encoding). This is a > prerequisite for using the DWARF CFI unwinder on powerpc. Looks reasonable to me. > 2006-05-09 Andreas Schwab > > * dwarf2-frame.c (struct dwarf2_fde): Add eh_frame_p. > (execute_cfa_program): Add parameter eh_frame_p. Call > dwarf2_frame_eh_frame_regnum when true. > (dwarf2_frame_cache): Pass eh_frame_p from fde to > execute_cfa_program. > (decode_frame_entry_1): Call dwarf2_frame_eh_frame_regnum when > processing .eh_frame. Copy eh_frame_p to the new fde. > (struct dwarf2_frame_ops): Add eh_frame_regnum. > (dwarf2_frame_set_eh_frame_regnum): Define. > (dwarf2_frame_eh_frame_regnum): Define. > > * dwarf2-frame.h (dwarf2_frame_set_eh_frame_regnum): Declare. > (dwarf2_frame_eh_frame_regnum): Declare.