From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 15172 invoked by alias); 14 Jan 2010 16:21:18 -0000 Received: (qmail 14870 invoked by uid 48); 14 Jan 2010 16:21:04 -0000 Date: Thu, 14 Jan 2010 16:21:00 -0000 Message-ID: <20100114162104.14869.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug inline-asm/42321] NEON/VFP registers from inline assembly clobber list are saved/restored incorrectly In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "ramana at gcc dot gnu dot org" Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2010-01/txt/msg01734.txt.bz2 ------- Comment #5 from ramana at gcc dot gnu dot org 2010-01-14 16:21 ------- I took a cursory look at this case . This looks like a bug in the backend specifically in arm_output_epilogue where the epilogue code isn't designed to cope for restoring disjoint sets of registers from the stack when the frame pointer is eliminated. The epilogue code for restoring these registers would work fine in the case where a. The registers to be restored are in a single sequence for load multiple irrespective of whether the frame pointer is used or not. b. If the function ends up using a frame_pointer. We need a separate case for when the frame pointer is not required and one has more than one sequence to restore. -- ramana at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |wrong-code Known to fail| |4.4.2 4.5.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42321