From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 11997 invoked by alias); 15 Jan 2005 00:40:24 -0000 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org Received: (qmail 11685 invoked by uid 48); 15 Jan 2005 00:40:10 -0000 Date: Sat, 15 Jan 2005 00:40:00 -0000 Message-ID: <20050115004010.11684.qmail@sourceware.org> From: "dje at gcc dot gnu dot org" To: gcc-bugs@gcc.gnu.org In-Reply-To: <20050112234624.19417.cort@fsmlabs.com> References: <20050112234624.19417.cort@fsmlabs.com> Reply-To: gcc-bugzilla@gcc.gnu.org Subject: [Bug middle-end/19417] [3.3 only] return value of some functions not properly set (in r3) X-Bugzilla-Reason: CC X-SW-Source: 2005-01/txt/msg01917.txt.bz2 List-Id: ------- Additional Comments From dje at gcc dot gnu dot org 2005-01-15 00:40 ------- The inlined asm rtl_a_set() does not list any outputs or clobbers, so it looks like the compiler safely can assume that the value is unchanged. I am not sure why the compiler can assume that the value is zero, but the asm definitely will confuse it about the status of the register. Showing the register as killed in the asm fixes the code generation. I am going to mark this as invalid. Please reopen if you can explain to me why GCC should behave well with an asm statement that kills the value in a register but only lists inputs to the data dependency and flow parts of the compiler. -- What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution| |INVALID http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19417