From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 25824 invoked by alias); 30 Oct 2002 22:26:01 -0000 Mailing-List: contact gcc-prs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-prs-owner@gcc.gnu.org Received: (qmail 25809 invoked by uid 71); 30 Oct 2002 22:26:00 -0000 Date: Wed, 30 Oct 2002 14:26:00 -0000 Message-ID: <20021030222600.25808.qmail@sources.redhat.com> To: nobody@gcc.gnu.org Cc: gcc-prs@gcc.gnu.org, From: Kevin Ryde Subject: Re: optimization/6162: gcc 3.0.4: certain i386 asm reloader ice Reply-To: Kevin Ryde X-SW-Source: 2002-10/txt/msg01274.txt.bz2 List-Id: The following reply was made to PR optimization/6162; it has been noted by GNATS. From: Kevin Ryde To: Michael Matz Cc: Nathanael Nerode , , , , , =?iso-8859-1?q?Torbj=F6rn?= Granlund Subject: Re: optimization/6162: gcc 3.0.4: certain i386 asm reloader ice Date: Thu, 31 Oct 2002 08:20:03 +1000 Michael Matz writes: > > Well, to find it is quite easy. reload is inherently incapable of > handling more than one commutative operand, but there are two of them in > the asm. If you are unlucky both of them would need to be swapped to make > the insn valid, and this is what breaks reload, as it only can swap the > last pair. I don't know why this constraint isn't documented, but anyway, > that's the reason. The stuff in question is from longlong.h actually (shared by GMP and GCC). All the add_ssaaaa's (or it looks like all) have two commutatives.