From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 127347 invoked by alias); 28 Apr 2016 13:24:32 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 127280 invoked by uid 89); 28 Apr 2016 13:24:32 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.4 required=5.0 tests=AWL,BAYES_00,KAM_LAZY_DOMAIN_SECURITY,RP_MATCHES_RCVD autolearn=ham version=3.3.2 spammy=involve, HTo:U*uweigand X-HELO: e06smtp15.uk.ibm.com Received: from e06smtp15.uk.ibm.com (HELO e06smtp15.uk.ibm.com) (195.75.94.111) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (CAMELLIA256-SHA encrypted) ESMTPS; Thu, 28 Apr 2016 13:24:21 +0000 Received: from localhost by e06smtp15.uk.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Thu, 28 Apr 2016 14:24:18 +0100 Received: from d06dlp02.portsmouth.uk.ibm.com (9.149.20.14) by e06smtp15.uk.ibm.com (192.168.101.145) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; Thu, 28 Apr 2016 14:24:10 +0100 X-IBM-Helo: d06dlp02.portsmouth.uk.ibm.com X-IBM-MailFrom: arnez@linux.vnet.ibm.com X-IBM-RcptTo: gdb-patches@sourceware.org Received: from b06cxnps4076.portsmouth.uk.ibm.com (d06relay13.portsmouth.uk.ibm.com [9.149.109.198]) by d06dlp02.portsmouth.uk.ibm.com (Postfix) with ESMTP id B6B162190067 for ; Thu, 28 Apr 2016 14:23:46 +0100 (BST) Received: from d06av11.portsmouth.uk.ibm.com (d06av11.portsmouth.uk.ibm.com [9.149.37.252]) by b06cxnps4076.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id u3SDO9UK58130436 for ; Thu, 28 Apr 2016 13:24:09 GMT Received: from d06av11.portsmouth.uk.ibm.com (localhost [127.0.0.1]) by d06av11.portsmouth.uk.ibm.com (8.14.4/8.14.4/NCO v10.0 AVout) with ESMTP id u3SDO9rq028713 for ; Thu, 28 Apr 2016 07:24:09 -0600 Received: from oc1027705133.ibm.com (dyn-9-152-212-143.boeblingen.de.ibm.com [9.152.212.143]) by d06av11.portsmouth.uk.ibm.com (8.14.4/8.14.4/NCO v10.0 AVin) with ESMTP id u3SDO8fa028694 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Thu, 28 Apr 2016 07:24:08 -0600 From: Andreas Arnez To: Ulrich Weigand , Pedro Alves Cc: gdb-patches@sourceware.org Subject: [PING][PATCH 2/2] Involve gdbarch in taking DWARF register pieces References: <20160415180943.4FEE857EE@oc7340732750.ibm.com> <571134CD.8080507@redhat.com> <5714E6EA.8050905@redhat.com> <57150356.3090508@redhat.com> Date: Thu, 28 Apr 2016 13:24:00 -0000 In-Reply-To: (Andreas Arnez's message of "Tue, 19 Apr 2016 14:08:15 +0200") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-TM-AS-MML: disable X-Content-Scanned: Fidelis XPS MAILER x-cbid: 16042813-0021-0000-0000-000034462DAD X-IsSubscribed: yes X-SW-Source: 2016-04/txt/msg00635.txt.bz2 Ping: https://sourceware.org/ml/gdb-patches/2016-04/msg00437.html IIRC, there was some uncertainty about the clarity/meaning of the new gdbarch method's description below. Or has this cleared up by now? On Tue, Apr 19 2016, Andreas Arnez wrote: > Here's another attempt: > > Determine the physical placement of a piece of size LEN within register > *REGNUM, possibly overwriting *REGNUM. (E.g., some ABIs have unwindable > sub-registers embedded in non-unwindable full registers, and this method > diverts from the full register to the sub-register if possible.) > Returns the byte offset of the data within the (possibly adjusted) > register. This method is used for determining the placement of a > LEN-sized DWARF piece (DW_OP_piece) and when interpreting a register as > a LEN-sized type (unless convert_register_p indicates that the type > needs a special conversion). [...] > gdb/ChangeLog: > > * gdbarch.sh (value_from_register): Remove. > (register_piece_placement): New. > * gdbarch.c: Regenerate. > * gdbarch.h: Likewise. > * dwarf2loc.c (read_pieced_value): Get arch-specific placement of > a register piece from gdbarch_register_piece_placement. > (write_pieced_value): Likewise. > * value.h (default_value_from_register): Remove. > (default_register_piece_placement): Declare. > * findvar.c (default_value_from_register): Remove. > (default_register_piece_placement): New. > (value_from_register): Call gdbarch_register_piece_placement > instead of gdbarch_value_from_register. > (address_from_register): Likewise. > * s390-linux-tdep.c (s390_value_from_register): Remove. > (s390_register_piece_placement): New. > (s390_gdbarch_init): Set new gdbarch method > register_piece_placement instead of value_from_register. > * spu-tdep.c (spu_value_from_register): Remove. > (spu_register_piece_placement): New. > (spu_gdbarch_init): Set new gdbarch method > register_piece_placement instead of value_from_register.