From patchwork Fri Dec 1 16:27:22 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Marchi X-Patchwork-Id: 81146 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 C2734385B534 for ; Fri, 1 Dec 2023 16:31:39 +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 4C0FB385C407 for ; Fri, 1 Dec 2023 16:29:57 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 4C0FB385C407 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 4C0FB385C407 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=1701448198; cv=none; b=eKvRp7Cb/H+Yoiy73yZnrRn8BqDVy4a717O3CAt0OjOkf3cdyIDIusn9C7Dtu22a1EvdrrfRrhxPIkit6VJj/csGRCeNJztgcFLkyw8+UNebbhX7sv5loLJioc/YInCn5m80wiuH5OEtG5UpuHpslcGjZoB07Pl8ZYDqkNRiLR8= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1701448198; c=relaxed/simple; bh=Xg3GmfGeKhMmERKD5sLTZ+GHG4VKGc2zbMAVMWvCbFI=; h=From:To:Subject:Date:Message-ID:MIME-Version; b=VUJj1CrTZGre78btMNspPIXaMjF23uHWurEQAGaJK4vDtqJ7XAjGzwgSJDWlBq5r1qCU46Z3NDtx8e/pZuEjzYVR2X0BFGfoK9gkuUEDygqmCbeMKPfzXpx17rdmYOucNH3KtqwPFrzAoVp4kcvW55dYQW69mcl5ZlGQrzsgF/0= 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 7E2EB1E0BB; Fri, 1 Dec 2023 11:29:56 -0500 (EST) From: Simon Marchi To: gdb-patches@sourceware.org Cc: Luis Machado , John Baldwin , "Aktemur, Tankut Baris" , Simon Marchi , John Baldwin Subject: [PATCH 09/24] gdb: remove frame_register Date: Fri, 1 Dec 2023 11:27:22 -0500 Message-ID: <20231201162751.741751-10-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.7 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 I was going to change frame_register to take the "next frame", but I realized that doing so would make it a useless wrapper around frame_register_unwind. So, just remove frame_register and replace uses with frame_register_unwind. Change-Id: I185868bc69f8e098124775d0550d069220a4678a Reviewed-By: John Baldwin --- gdb/frame.c | 39 ++++++++------------------------------- 1 file changed, 8 insertions(+), 31 deletions(-) diff --git a/gdb/frame.c b/gdb/frame.c index 9312d1b40168..61d6822ecc1a 100644 --- a/gdb/frame.c +++ b/gdb/frame.c @@ -1214,31 +1214,6 @@ frame_register_unwind (frame_info_ptr next_frame, int regnum, release_value (value); } -/* Get the value of the register that belongs to this FRAME. This - function is a wrapper to the call sequence ``frame_register_unwind - (get_next_frame (FRAME))''. As per frame_register_unwind(), if - VALUEP is NULL, the registers value is not fetched/computed. */ - -static void -frame_register (frame_info_ptr frame, int regnum, - int *optimizedp, int *unavailablep, enum lval_type *lvalp, - CORE_ADDR *addrp, int *realnump, gdb_byte *bufferp) -{ - /* Require all but BUFFERP to be valid. A NULL BUFFERP indicates - that the value proper does not need to be fetched. */ - gdb_assert (optimizedp != NULL); - gdb_assert (lvalp != NULL); - gdb_assert (addrp != NULL); - gdb_assert (realnump != NULL); - /* gdb_assert (bufferp != NULL); */ - - /* Obtain the register value by unwinding the register from the next - (more inner frame). */ - gdb_assert (frame != NULL && frame->next != NULL); - frame_register_unwind (frame_info_ptr (frame->next), regnum, optimizedp, - unavailablep, lvalp, addrp, realnump, bufferp); -} - void frame_unwind_register (frame_info_ptr next_frame, int regnum, gdb_byte *buf) { @@ -1436,8 +1411,8 @@ put_frame_register (frame_info_ptr frame, int regnum, gdb_assert (buf.size () == size); - frame_register (frame, regnum, &optim, &unavail, - &lval, &addr, &realnum, NULL); + frame_register_unwind (get_next_frame_sentinel_okay (frame), regnum, &optim, + &unavail, &lval, &addr, &realnum, nullptr); if (optim) error (_("Attempt to assign to a register that was not saved.")); switch (lval) @@ -1473,8 +1448,9 @@ deprecated_frame_register_read (frame_info_ptr frame, int regnum, CORE_ADDR addr; int realnum; - frame_register (frame, regnum, &optimized, &unavailable, - &lval, &addr, &realnum, myaddr); + frame_register_unwind (get_next_frame_sentinel_okay (frame), regnum, + &optimized, &unavailable, &lval, &addr, &realnum, + myaddr); return !optimized && !unavailable; } @@ -1523,8 +1499,9 @@ get_frame_register_bytes (frame_info_ptr frame, int regnum, CORE_ADDR addr; int realnum; - frame_register (frame, regnum, optimizedp, unavailablep, &lval, - &addr, &realnum, buffer.data ()); + frame_register_unwind (get_next_frame_sentinel_okay (frame), regnum, + optimizedp, unavailablep, &lval, &addr, + &realnum, buffer.data ()); if (*optimizedp || *unavailablep) return false; }