From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 5353 invoked by alias); 14 Feb 2007 18:58:21 -0000 Received: (qmail 5340 invoked by uid 22791); 14 Feb 2007 18:58:18 -0000 X-Spam-Check-By: sourceware.org Received: from Unknown (HELO elsdt-razorfish.arc.com) (194.202.198.226) by sourceware.org (qpsmtpd/0.31) with ESMTP; Wed, 14 Feb 2007 18:58:10 +0000 Received: from elsdt-razorfish.arc.com (localhost.localdomain [127.0.0.1]) by elsdt-razorfish.arc.com (8.12.11.20060308/8.12.11) with ESMTP id l1EIvHQS018807; Wed, 14 Feb 2007 18:57:17 GMT Received: (from joernr@localhost) by elsdt-razorfish.arc.com (8.12.11.20060308/8.12.11/Submit) id l1EIvHkT018805; Wed, 14 Feb 2007 18:57:17 GMT Date: Wed, 14 Feb 2007 18:58:00 -0000 From: Joern Rennecke To: "Frank Ch. Eigler" Cc: cgen@sources.redhat.com Subject: decode-bitsize (Was: Re: delayed branches and zero overhead loops) Message-ID: <20070214185717.GB18550@elsdt-razorfish.arc.com> References: <20070213153717.GA12710@elsdt-razorfish.arc.com> <20070213185118.GA20088@redhat.com> <20070213205905.GB16492@elsdt-razorfish.arc.com> <20070213211152.GD20088@redhat.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="/04w6evG8XlLl3ft" Content-Disposition: inline In-Reply-To: <20070213211152.GD20088@redhat.com> User-Agent: Mutt/1.4.1i Mailing-List: contact cgen-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cgen-owner@sourceware.org X-SW-Source: 2007-q1/txt/msg00047.txt.bz2 --/04w6evG8XlLl3ft Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-length: 2099 On Tue, Feb 13, 2007 at 04:11:52PM -0500, Frank Ch. Eigler wrote: > The decoder generator is fully automatic. If you represent decodable > bits without cheating, it will do a reasonable job. Actually, I realize now that I have a much bigger problem with the decoder generator. Originally, I set out to set default-insn-bitsize, base-insn-bitsize and default-insn-word-bitsize all to 16, because that's what I should do according to the documentation. However, that gave me tons of ambiguity warnings. from previous postings on the cgen mailing list and the xstormy port I've gathered that I have to set base-insn-bitsize to 32. Apart from the ilink / noilink thing, that got rid of the spurious ambiguity warnings. However, when compiling the decoder, I got tons of warnings about neative shifts. Declaring base-insn-bitsize as 32 does not make it so: it still stays 16 once you have 16 bit instructions. And the second level decoding tables are also generated using base-insn. As bits from beyond the first 16 bits are needed, this results in a negative shift. I had though that I had solved this porblem by declaring bit fields in the second word using a word offset, but i've found now that the effect is that the decoder generator will completely mask out these bits from the insn - even in the final comparisons against entire_insn to check if there is a match. It won't mask it out in the constant value to compare against, though, so any insn that requires a bit in the second 16 bits to be set is decoded as @CPU@_INSN_X_INVALID. When I put the fields back to use no word offsets, the matching tests are OK, but as the decoding switch statements also use bits from beyond the first 16, they again end up with negative shifts. I've tried hacking -gen-decoder-switch so that it always fetches the required bits, but all I get is a re-fetch of the first 16 bits. So, the decode-bitsize in the table-guts somehow is 16, even though that is insufficient to cover all the included bits. I have appended a copy of ARCompact.cpu version that get translated to a decoder with negative shifts. --/04w6evG8XlLl3ft Content-Type: application/x-bzip2 Content-Disposition: attachment; filename="ARCompact.cpu.bz2" Content-Transfer-Encoding: base64 Content-length: 23782 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 --/04w6evG8XlLl3ft--