From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 16366 invoked by alias); 29 Jan 2009 08:05:42 -0000 Received: (qmail 16337 invoked by uid 48); 29 Jan 2009 08:05:30 -0000 Date: Thu, 29 Jan 2009 08:05:00 -0000 Message-ID: <20090129080530.16336.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug target/39002] codegen bug, stack pointer is not restored In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "ubizjak at gmail 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: 2009-01/txt/msg03184.txt.bz2 ------- Comment #14 from ubizjak at gmail dot com 2009-01-29 08:05 ------- Cc the author of the patch: Author: hubicka Date: Tue Jan 6 15:08:44 2009 New Revision: 143119 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=143119 Log: * i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used for w64 ABI. * i386.c (struct ix86_frame): Add padding0 and nsseregs. (ix86_nsaved_regs): Count only general purpose regs. (ix86_nsaved_sseregs): New. (ix86_compute_frame_layout): Update nsseregs; set preferred alignment to 16 for w64; compute padding and size of sse reg save area. (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only general purpose regs. (ix86_emit_save_sse_regs_using_mov): New. (ix86_expand_prologue): Save SSE regs if needed. (ix86_emit_restore_regs_using_mov): Use only general purpose regs. (ix86_emit_restore_sse_regs_using_mov): New. (ix86_expand_epilogue): Save SSE regs if needed. Modified: trunk/gcc/ChangeLog trunk/gcc/config/i386/i386.c trunk/gcc/config/i386/i386.h -- ubizjak at gmail dot com changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |hubicka at gcc dot gnu dot | |org Status|WAITING |NEW Component|c++ |target Ever Confirmed|0 |1 Last reconfirmed|0000-00-00 00:00:00 |2009-01-29 08:05:29 date| | Summary|codegen bug? |codegen bug, stack pointer | |is not restored http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39002