From patchwork Fri Dec 1 16:27:32 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Marchi X-Patchwork-Id: 81149 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id EA789384F9BF for ; Fri, 1 Dec 2023 16:32:15 +0000 (GMT) X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from simark.ca (simark.ca [158.69.221.121]) by sourceware.org (Postfix) with ESMTPS id 2B3723861841 for ; Fri, 1 Dec 2023 16:32:00 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 2B3723861841 Authentication-Results: sourceware.org; dmarc=fail (p=none dis=none) header.from=efficios.com Authentication-Results: sourceware.org; spf=fail smtp.mailfrom=efficios.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 2B3723861841 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=158.69.221.121 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1701448321; cv=none; b=XojAXoQsTbb/sBhmT8llg0AZpajQtmrpbfv3VNyMyZNPmOhNxXBuut27IkmQ1Tu4vbU9MPy8EVmKTBpvcn5EVMoCZ0HBwAxy6Z0wb32xJ/qg8fSNFNZTDHFwLsezcA9kpEIHBkMItbHkXr1IXYdE2ERxnWmBoXc4wXQkzdr6MKk= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1701448321; c=relaxed/simple; bh=/q5UHmbDjNW5VCEAwpCRET1BV4AxLUYI/a3cgpfrGbc=; h=From:To:Subject:Date:Message-ID:MIME-Version; b=Ehu5CbKvI3yTATMwI0x0nSWzSnmLd2DLUgHlXRJRJGh9RCFj45vWRU4PcRdSFMudEodBn3a0eHmazg7zSYoL8h9vEUa5YYjlDYU9EZeB4PAG2y+PcrlPp/+1PXYH3kItK175qYuEDaREJN4e775ylN0crABiB1L/HOnRyvQvTt8= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from smarchi-efficios.internal.efficios.com (192-222-143-198.qc.cable.ebox.net [192.222.143.198]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPSA id 53DBD1E11B; Fri, 1 Dec 2023 11:31:59 -0500 (EST) From: Simon Marchi To: gdb-patches@sourceware.org Cc: Luis Machado , John Baldwin , "Aktemur, Tankut Baris" , Simon Marchi , John Baldwin Subject: [PATCH 19/24] gdb: make aarch64_za_offsets_from_regnum return za_offsets Date: Fri, 1 Dec 2023 11:27:32 -0500 Message-ID: <20231201162751.741751-20-simon.marchi@efficios.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20231201162751.741751-1-simon.marchi@efficios.com> References: <20231201162751.741751-1-simon.marchi@efficios.com> MIME-Version: 1.0 X-Spam-Status: No, score=-3496.6 required=5.0 tests=BAYES_00, GIT_PATCH_0, KAM_DMARC_NONE, KAM_DMARC_STATUS, SPF_HELO_PASS, SPF_SOFTFAIL, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces+patchwork=sourceware.org@sourceware.org This is not necessary, but it seems more natural to me to make aarch64_za_offsets_from_regnum return a za_offsets object, rather than fill an instance passed by parameter. Change-Id: I40a185f055727da887ce7774be193eef1f4b9147 Approved-by: Luis Machado Reviewed-By: John Baldwin --- gdb/aarch64-tdep.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/gdb/aarch64-tdep.c b/gdb/aarch64-tdep.c index 5b2d87be6bfc..5c3b824ed0ad 100644 --- a/gdb/aarch64-tdep.c +++ b/gdb/aarch64-tdep.c @@ -3114,12 +3114,11 @@ aarch64_pseudo_read_value_1 (frame_info_ptr next_frame, } /* Helper function for reading/writing ZA pseudo-registers. Given REGNUM, - a ZA pseudo-register number, return, in OFFSETS, the information on positioning - of the bytes that must be read from/written to. */ + a ZA pseudo-register number, return the information on positioning of the + bytes that must be read from/written to. */ -static void -aarch64_za_offsets_from_regnum (struct gdbarch *gdbarch, int regnum, - struct za_offsets &offsets) +static za_offsets +aarch64_za_offsets_from_regnum (struct gdbarch *gdbarch, int regnum) { aarch64_gdbarch_tdep *tdep = gdbarch_tdep (gdbarch); @@ -3135,6 +3134,7 @@ aarch64_za_offsets_from_regnum (struct gdbarch *gdbarch, int regnum, /* Fetch the streaming vector length. */ size_t svl = sve_vl_from_vq (tdep->sme_svq); + za_offsets offsets; if (is_sme_tile_slice_pseudo_register (gdbarch, regnum)) { @@ -3190,6 +3190,8 @@ aarch64_za_offsets_from_regnum (struct gdbarch *gdbarch, int regnum, /* The chunk size is always svl bytes. */ offsets.chunk_size = svl; } + + return offsets; } /* Given REGNUM, a SME pseudo-register number, return its value in RESULT. */ @@ -3207,8 +3209,8 @@ aarch64_sme_pseudo_register_read (gdbarch *gdbarch, frame_info_ptr next_frame, /* Fetch the offsets that we need in order to read from the correct blocks of ZA. */ - struct za_offsets offsets; - aarch64_za_offsets_from_regnum (gdbarch, pseudo_reg_num, offsets); + za_offsets offsets + = aarch64_za_offsets_from_regnum (gdbarch, pseudo_reg_num); /* Fetch the contents of ZA. */ value *za_value = value_of_register (tdep->sme_za_regnum, next_frame); @@ -3330,8 +3332,7 @@ aarch64_sme_pseudo_register_write (struct gdbarch *gdbarch, /* Fetch the offsets that we need in order to write to the correct blocks of ZA. */ - struct za_offsets offsets; - aarch64_za_offsets_from_regnum (gdbarch, regnum, offsets); + za_offsets offsets = aarch64_za_offsets_from_regnum (gdbarch, regnum); /* Fetch the contents of ZA. */ size_t svl = sve_vl_from_vq (tdep->sme_svq);