From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 2921 invoked by alias); 4 Dec 2006 23:21:40 -0000 Received: (qmail 2635 invoked by uid 48); 4 Dec 2006 23:21:23 -0000 Date: Mon, 04 Dec 2006 23:21:00 -0000 Message-ID: <20061204232123.2634.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug target/25295] unused register saved in function prolog In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "michael dot meissner at amd dot com" 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: 2006-12/txt/msg00378.txt.bz2 ------- Comment #3 from michael dot meissner at amd dot com 2006-12-04 23:21 ------- I've done some analysis on the test case. The current GCC 4.2 and mainline branches no longer generate the initial push of %r8, but instead do a subq $8,%rsp. I believe in the compiler you used it did the push to allocate 8 bytes of stack instead of the subtract. Note, the epilogue still uses a pop to remove the stack location. The core of the problem is that the compiler is allocating 8 bytes too much stack in this particular case. I think I understand whats going on, but I want to dig a bit more. -- michael dot meissner at amd dot com changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |michael dot meissner at amd | |dot com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25295