i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used for w64 ABI.
authorJan Hubicka <jh@suse.cz>
Tue, 6 Jan 2009 15:08:44 +0000 (16:08 +0100)
committerJan Hubicka <hubicka@gcc.gnu.org>
Tue, 6 Jan 2009 15:08:44 +0000 (15:08 +0000)
commit7650b83e78f13f3e7a7ffd4b1d7d0fdd48bc2592
tree7059171040fe1db464c9107f120272574044d14d
parent9aa5c1b2acb324d7d221f7d919e976110cdeedfc
i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used for w64 ABI.

* 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.

Co-Authored-By: Kai Tietz <kai.tietz@onevision.com>
From-SVN: r143119
gcc/ChangeLog
gcc/config/i386/i386.c
gcc/config/i386/i386.h