From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 15901 invoked by alias); 23 Apr 2002 08:18:16 -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 15853 invoked by uid 61); 23 Apr 2002 08:18:12 -0000 Date: Tue, 23 Apr 2002 01:18:00 -0000 Message-ID: <20020423081812.15852.qmail@sources.redhat.com> To: gcc-bugs@gcc.gnu.org, gcc-prs@gcc.gnu.org, jodaman@cegt201.bradley.edu, nobody@gcc.gnu.org From: rth@gcc.gnu.org Reply-To: rth@gcc.gnu.org, gcc-bugs@gcc.gnu.org, gcc-prs@gcc.gnu.org, jodaman@cegt201.bradley.edu, nobody@gcc.gnu.org, gcc-gnats@gcc.gnu.org Subject: Re: c/4134: inline assembly - gcc fails to work around register pressure X-SW-Source: 2002-04/txt/msg01161.txt.bz2 List-Id: Synopsis: inline assembly - gcc fails to work around register pressure State-Changed-From-To: open->closed State-Changed-By: rth State-Changed-When: Tue Apr 23 01:18:11 2002 State-Changed-Why: Not a bug. You really have run out of registers. Your ifdef BUG example requires 7 registers: 3 for each of the "r" inputs, 1 for the address of the input memory parameter, and 3 are clobbered and thus cannot be used. The i386 has 8 registers one is reserved for the stack pointer, and one is reserved for the frame pointer (at least without -fomit-frame-pointer), leaving only 6, one short of the required 7. As a guess, egcs failed to properly not use one of the registers marked clobbered. http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=4134