From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id FzxROlO7fGcWywUAWB0awg (envelope-from ) for ; Tue, 07 Jan 2025 00:27:47 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=simark.ca; s=mail; t=1736227667; bh=NntzftI+QKBGiNgFVC55SlWUwsbdKPMnFM23zr8DNAw=; h=Date:Subject:To:Cc:References:From:In-Reply-To:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From; b=t87RLZ2EQGzR6tBn+kGH7EUmxGBd++fHzKMVNIqj3wLMX/xXjIUkUVTrEDI1RTUDL +dQfmU0G/g06T9nZxyI2XWPEFMrjO2aM0jdeR+O5DceUIVsL4GYJT8YrNuKwvT1cSF zYKHqTuplg5c9To3lATdYhLMhlsYrVU1FJMCeHZc= Received: by simark.ca (Postfix, from userid 112) id E29FF1E0BB; Tue, 7 Jan 2025 00:27:47 -0500 (EST) X-Spam-Checker-Version: SpamAssassin 4.0.0 (2022-12-13) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-5.4 required=5.0 tests=ARC_SIGNED,ARC_VALID,BAYES_00, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED autolearn=unavailable autolearn_force=no version=4.0.0 Authentication-Results: simark.ca; dkim=pass (1024-bit key; unprotected) header.d=simark.ca header.i=@simark.ca header.a=rsa-sha256 header.s=mail header.b=OLQBwSr/; dkim=pass (1024-bit key) header.d=simark.ca header.i=@simark.ca header.a=rsa-sha256 header.s=mail header.b=C4PSOd9U; dkim-atps=neutral Received: from server2.sourceware.org (server2.sourceware.org [8.43.85.97]) (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 ESMTPS id E971E1E091 for ; Tue, 7 Jan 2025 00:27:46 -0500 (EST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 8061C3858C51 for ; Tue, 7 Jan 2025 05:27:46 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 8061C3858C51 Authentication-Results: sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=simark.ca header.i=@simark.ca header.a=rsa-sha256 header.s=mail header.b=OLQBwSr/; dkim=pass (1024-bit key) header.d=simark.ca header.i=@simark.ca header.a=rsa-sha256 header.s=mail header.b=C4PSOd9U Received: from simark.ca (simark.ca [158.69.221.121]) by sourceware.org (Postfix) with ESMTPS id 7391B3858D29 for ; Tue, 7 Jan 2025 05:27:10 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 7391B3858D29 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=simark.ca Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=simark.ca ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 7391B3858D29 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=1736227630; cv=none; b=pqrgDO74bNB7WtLXTNNN1nvrldiIYRq13Qif8y/Lg9fGfEYw4lX+OzvDWO1dUJvuNsYeduoP25kkgmVWvygW5uh5LXqES2pDSs9IwyM85kFn3j9VpklGSZrxKZ0G249lVgn6lQvGW6+GKDj77AKzeUw7gXfpqD0AM8/Q37BroDg= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1736227630; c=relaxed/simple; bh=NntzftI+QKBGiNgFVC55SlWUwsbdKPMnFM23zr8DNAw=; h=DKIM-Signature:DKIM-Signature:Message-ID:Date:MIME-Version: Subject:To:From; b=F1WHKshvGqc2fpgJpC3fWjM+kQwMNAE1KRafHMyuGOV/VVXpEEiefqEnFZhzvfgKDYONeMAJ4JbdZLScK/Dd01V19LHw0uLJLU//jejerJCRModtq91atg8pEl5lncAeoezvXc9YBjNKJOOoYyE0JLvfnT3vhfNXnajaNHfelkQ= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 7391B3858D29 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=simark.ca; s=mail; t=1736227630; bh=NntzftI+QKBGiNgFVC55SlWUwsbdKPMnFM23zr8DNAw=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=OLQBwSr/iXPzhaq9oUqf9I6lK1qkm3g2MfZMMfV4VUA/3lV8NtUFOOWiSJ4+abYs3 97NYetkq+8bhF6atBpmMUkkAW/zvPvZZVvAIk3vTbS/ovlwmN3Yu/34ULUUtqFLLGS BtO5tIsNvcLRqWqNzw1BcLlqd4vMnNI58/1bGoQk= Received: by simark.ca (Postfix, from userid 112) id 272411E0C1; Tue, 7 Jan 2025 00:27:10 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=simark.ca; s=mail; t=1736227629; bh=NntzftI+QKBGiNgFVC55SlWUwsbdKPMnFM23zr8DNAw=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=C4PSOd9UNGfoY69nlUBR/8C9xSwAXI041+rdVGvjITMYhHeRgZk5x784/MZhLweVU Dbt6j3Wvua5UR6AYBSrtf8g7u+sPO3LFOJ1nqFql8vP71SryU6BzLzrUz5iiM32DlU xkrd77oGqlkx9AOSsk01am8C2f+ID1MVvUyaxDr8= Received: from [10.0.0.11] (modemcable238.237-201-24.mc.videotron.ca [24.201.237.238]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPSA id 09C4E1E091; Tue, 7 Jan 2025 00:27:08 -0500 (EST) Message-ID: <31a6af11-c19f-4fba-800c-e41331fbe536@simark.ca> Date: Tue, 7 Jan 2025 00:27:08 -0500 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2 09/11] gdbserver: define and use regcache::reset To: Tankut Baris Aktemur , gdb-patches@sourceware.org Cc: simon.marchi@efficios.com References: <20241230-upstream-gdbserver-regcache-v2-0-020a9514fcf0@intel.com> <20241230-upstream-gdbserver-regcache-v2-9-020a9514fcf0@intel.com> Content-Language: en-US From: Simon Marchi In-Reply-To: <20241230-upstream-gdbserver-regcache-v2-9-020a9514fcf0@intel.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit 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~public-inbox=simark.ca@sourceware.org On 2024-12-30 05:49, Tankut Baris Aktemur wrote: > Define a `reset` method for a regcache and use it for code > simplification. This patch allows further simplification in the next > patch. > > The reset method fills the register data with zeroes. For the use in > get_thread_regcache, this is added behavior, making the patch not a > pure refactoring, and may look like extra overhead. However, it is > better to avoid having arbitrary values left in the data buffer. > Hence, it is considered a behavioral improvement. Given that the regcache initializes the buffer to zeroes at construction time, it makes sense for a reset method to bring in back in that same state. To be pedantic, I would say that having random data in there when the register status is not REG_VALID is fine, but since this is how regcache works currently, it's ok. > diff --git a/gdbserver/regcache.cc b/gdbserver/regcache.cc > index 03e975dc00154d01798765273534ca9cdcdc7eb7..7e1a722b0f80b9e5641bddfbbe95cbcf2b228df8 100644 > --- a/gdbserver/regcache.cc > +++ b/gdbserver/regcache.cc > @@ -52,8 +52,7 @@ get_thread_regcache (thread_info *thread, bool fetch) > > switch_to_thread (thread); > /* Invalidate all registers, to prevent stale left-overs. */ > - memset (regcache->register_status, REG_UNKNOWN, > - regcache->tdesc->reg_defs.size ()); > + regcache->reset (REG_UNKNOWN); Oh, I think we can now make register_status private. Simon