From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id MCM8G/hZgGDYPQAAWB0awg (envelope-from ) for ; Wed, 21 Apr 2021 12:59:36 -0400 Received: by simark.ca (Postfix, from userid 112) id 6DB981F104; Wed, 21 Apr 2021 12:59:36 -0400 (EDT) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-0.5 required=5.0 tests=DKIM_SIGNED, MAILING_LIST_MULTI,RDNS_DYNAMIC,T_DKIM_INVALID,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from sourceware.org (ip-8-43-85-97.sourceware.org [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id AF0B41E789 for ; Wed, 21 Apr 2021 12:59:35 -0400 (EDT) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 1B9F4398B417; Wed, 21 Apr 2021 16:59:35 +0000 (GMT) Received: from mail-wr1-x434.google.com (mail-wr1-x434.google.com [IPv6:2a00:1450:4864:20::434]) by sourceware.org (Postfix) with ESMTPS id 4655D39B7010 for ; Wed, 21 Apr 2021 16:59:23 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 4655D39B7010 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=embecosm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=andrew.burgess@embecosm.com Received: by mail-wr1-x434.google.com with SMTP id a4so42089444wrr.2 for ; Wed, 21 Apr 2021 09:59:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=embecosm.com; s=google; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=pEUICXwqxRnNAD5uPCfCkzk969jgOcyt8tbxp0F9AtY=; b=X6pBHZFYW4CX2zTeHX15H6CiaH9dE1L4F/tOCgN3O7HCHAPAArzBBf+EXzxzjCUKd4 wbz99k9Kd74oXR3jVqOyu0JEqsPU/UopuDhDhsukQUA8Av4RV2bZ6gcAzy8/tvn5rj77 Yzca1dXUJBaXUfmUNj9I7DSOuTTeFt2r446OhFvOuP2SseoPkeply2cv7mDBMPaz0NPx m8fFy+NZHh7plghO5rhGo7GFOWE3M3kOKBwDeWN7SC2m9qx9zP4WXRXU6sJsROkr7QIm G0dL4GqjnTAXYxUjYxBScKqEHlEyevBJ2C2GK+jHEotkswY85GNax/GRH1McCuiEQqAo UQKg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=pEUICXwqxRnNAD5uPCfCkzk969jgOcyt8tbxp0F9AtY=; b=VRTLmdy5CizAcixlWZ7pmBkYr1LeU5pGZZ31XutyZOpPy9efFOzqafJ6QtetXOu2Ev yA0ETf+tSnF4+RTLiYetEjOWWJw3Po5Q5zCgES2ixBAir91ukVxiTwh0qVCC/ZLLEVQD AH8qmP9+nzTqfuZq89GMb8Q9dGwNyAEwWZg45N7iHTA/OJFQYBLniqsDtpQ0cUM4ybdi uUx3lUKWamqz09gOi9Pg9Lut8y59hG6E4/utjIL4y8K+SbS7V6UffVbO3oO3fylxis/k 43xgeF4t55IuE5aYHXbjQwc2mwktdgW37svTuDenRu10ZD5mJC/WARuEE1a1PRYPBe0l tCkA== X-Gm-Message-State: AOAM532sff2Z4GfMzYlGk9bd2XqqsKW0Q7dDD0cbzn2WtA2Mp8S1l6IV aON85h3OYJxBD2gsxYYihVk1+r3++FjnIw== X-Google-Smtp-Source: ABdhPJwUE5xPgADO7S1f5wdQTBgpDTPUKpIta7n5LUdgoMFs/q4hhbHA3SqIF8ec1vHn7vNNldjHjA== X-Received: by 2002:adf:cd0a:: with SMTP id w10mr28405274wrm.195.1619024362160; Wed, 21 Apr 2021 09:59:22 -0700 (PDT) Received: from localhost (host109-151-46-70.range109-151.btcentralplus.com. [109.151.46.70]) by smtp.gmail.com with ESMTPSA id o62sm11929067wmo.3.2021.04.21.09.59.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 21 Apr 2021 09:59:21 -0700 (PDT) From: Andrew Burgess To: gdb-patches@sourceware.org Subject: [PATCH] gdb: allow default_addressable_memory_unit_size to handle more cases Date: Wed, 21 Apr 2021 17:59:19 +0100 Message-Id: <20210421165919.1418455-1-andrew.burgess@embecosm.com> X-Mailer: git-send-email 2.25.4 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces@sourceware.org Sender: "Gdb-patches" Currently default_addressable_memory_unit_size always returns 1, indicating 1 byte is 1 octet. If a target has something other than this (common) setup then the target should override the default_addressable_memory_unit_size. However, the bfd library already knows about each targets octets per byte, so it seems redundant making targets override this method to tell GDB something it already knows (through bfd). In this commit I propose to make default_addressable_memory_unit_size return a value based on bfd's bits per byte. I checked, and for every target that GDB currently supports the bits per byte in bfd is 8, so the current behaviour will not change. In fact, the only targets in bfd that have bits per byte set to something other than 8 can be found in cpu-tic4x.c and cpu-tic54x.c, I don't believe these are supported by GDB right now. I don't propose to remove the ability to override default_addressable_memory_unit_size, this allows targets additional flexibility for how to handle weird combinations of byte sizes. This change was motivated by an out of tree target I was working on, but it seemed like it was a good change that others might benefit from. There should be no user visible changes after this commit. gdb/ChangeLog: * arch-utils.c (default_addressable_memory_unit_size): Return a value based on bfd's bits per byte. --- gdb/ChangeLog | 5 +++++ gdb/arch-utils.c | 8 +++++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/gdb/arch-utils.c b/gdb/arch-utils.c index e1d5afd6039..36681e96b61 100644 --- a/gdb/arch-utils.c +++ b/gdb/arch-utils.c @@ -1005,13 +1005,15 @@ default_gnu_triplet_regexp (struct gdbarch *gdbarch) return gdbarch_bfd_arch_info (gdbarch)->arch_name; } -/* Default method for gdbarch_addressable_memory_unit_size. By default, a memory byte has - a size of 1 octet. */ +/* Default method for gdbarch_addressable_memory_unit_size. The default is + based on the bits_per_byte defined in the bfd library for the current + architecture, this is usually 8-bits, and so this function will usually + return 1 indicating 1 bytes is 1 octet. */ int default_addressable_memory_unit_size (struct gdbarch *gdbarch) { - return 1; + return gdbarch_bfd_arch_info (gdbarch)->bits_per_byte / 8; } void -- 2.25.4