From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 26254 invoked by alias); 19 May 2005 02:49:03 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 26175 invoked from network); 19 May 2005 02:48:59 -0000 Received: from unknown (HELO takamaka.act-europe.fr) (138.130.149.55) by sourceware.org with SMTP; 19 May 2005 02:48:59 -0000 Received: by takamaka.act-europe.fr (Postfix, from userid 507) id 43E5547957; Thu, 19 May 2005 12:48:57 +1000 (EST) Date: Thu, 19 May 2005 03:07:00 -0000 From: Joel Brobecker To: Richard Henderson Cc: gdb-patches@sources.redhat.com Subject: Re: Question: Checking register value in buffer Message-ID: <20050519024857.GY12565@adacore.com> References: <20050519020443.GP1462@adacore.com> <20050519022256.GA8204@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20050519022256.GA8204@redhat.com> User-Agent: Mutt/1.4i X-SW-Source: 2005-05/txt/msg00462.txt.bz2 > On Thu, May 19, 2005 at 12:04:44PM +1000, Joel Brobecker wrote: > > LONGEST rav = extract_signed_integer (buf, 8) > > > > and then do the test using integer arithmetics. But then I'm not guarantied > > that LONGEST is at least 64bit long, am I. > > It had better be, or the rest of alpha_next_pc is broken too. > > Since it isn't, or isn't reported to be, you might as well > assume it is large enough. Ah yes, of course. In terms of computing the mask, I'm thinking of using something like this: sign_mask = 1 << (sizeof (rav) * TARGET_CHAR_BIT - 1); zero_mask = sign_mask ^ -1; Are there better ways of computing these masks? > > How are these sort of checks usually done in GDB? > > In gcc-land we have a "need_64bit_hwint" bit in config.gcc, and it > is set for targets that require the equivalent of LONGEST be at > least 64 bits, or we error out of configure. > > Dunno what's done in gdb. I just noticed in extract_signed_integer() that we actually do a size check before doing the extraction, so we would get an error if LONGEST was not large enough. Thanks, -- Joel