From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 32631 invoked by alias); 18 Nov 2004 13:17:18 -0000 Mailing-List: contact gcc-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-owner@gcc.gnu.org Received: (qmail 32606 invoked from network); 18 Nov 2004 13:17:13 -0000 Received: from unknown (HELO mx1.redhat.com) (66.187.233.31) by sourceware.org with SMTP; 18 Nov 2004 13:17:13 -0000 Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.11/8.12.11) with ESMTP id iAIDHDZ7024294; Thu, 18 Nov 2004 08:17:13 -0500 Received: from talisman.cambridge.redhat.com (talisman.cambridge.redhat.com [172.16.18.81]) by int-mx1.corp.redhat.com (8.11.6/8.11.6) with ESMTP id iAIDHBr17557; Thu, 18 Nov 2004 08:17:11 -0500 Received: from talisman.cambridge.redhat.com (localhost.localdomain [127.0.0.1]) by talisman.cambridge.redhat.com (8.13.1/8.12.10) with ESMTP id iAIDH9BM016207; Thu, 18 Nov 2004 13:17:09 GMT Received: (from rsandifo@localhost) by talisman.cambridge.redhat.com (8.13.1/8.12.10/Submit) id iAIDH8jk016130; Thu, 18 Nov 2004 13:17:08 GMT X-Authentication-Warning: talisman.cambridge.redhat.com: rsandifo set sender to rsandifo@redhat.com using -f To: Richard Henderson Cc: Bob Wilson , gcc@gcc.gnu.org Subject: Re: [cft] subreg validation round 2 References: <20041117184009.GA12257@redhat.com> <419BA411.5090801@tensilica.com> <20041117194553.GA12418@redhat.com> From: Richard Sandiford Date: Thu, 18 Nov 2004 16:23:00 -0000 In-Reply-To: <20041117194553.GA12418@redhat.com> (Richard Henderson's message of "Wed, 17 Nov 2004 11:45:53 -0800") Message-ID: User-Agent: Gnus/5.1006 (Gnus v5.10.6) Emacs/21.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-SW-Source: 2004-11/txt/msg00622.txt.bz2 Richard Henderson writes: > On Wed, Nov 17, 2004 at 11:18:41AM -0800, Bob Wilson wrote: >> Is this my bug? > > Yes. BLKmode REGs are illegal. I realise that they are in general, but it's fairly clear that, for example, FUNCTION_VALUE is allowed to return BLKmode REGs. Routines like hard_function_value have code that specifically handles such cases. I'd always thought that FUNCTION_ARG was in the same boat, and that the argument handling code interpreted (reg:BLK X) as meaning "as many consecutive registers as necessary, starting at X". MIPS's FUNCTION_ARG has returned (reg:BLK reg) for as long as I've been working on it and it always seems to have been interpreted in the right way. Are you saying that FUNCTION_ARG isn't an exception, and that it can never return a BLKmode REG? If so, what's the correct mode for, say, a 33 byte value passed in 5 consecutive 64-bit registers? I suppose the answer is probably "there isn't one, use a PARALLEL", but like I say, returning BLKmode REGs has worked fine until now, so this does seem like an interface change. Richard