re PR target/38900 (ICE: unable to find a register to spill)
authorRichard Henderson <rth@redhat.com>
Wed, 8 Jul 2009 16:41:23 +0000 (09:41 -0700)
committerRichard Henderson <rth@gcc.gnu.org>
Wed, 8 Jul 2009 16:41:23 +0000 (09:41 -0700)
commitac2e563fcfce40295dc962d8e98796b794726b0f
treef71db91f4b324227a6722f9b26010f65116c833b
parentacb78844c730bdb9b411442caa4df7ee78309596
re PR target/38900 (ICE: unable to find a register to spill)

PR target/38900
* config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move to i386.c.
(enum reg_class): Add CLOBBERED_REGS.
(REG_CLASS_NAMES, REG_CLASS_CONTENTS): Likewise.
* config/i386/i386.c (ix86_conditional_register_usage): Moved
from CONDITIONAL_REGISTER_USAGE; build CLOBBERED_REGS for 64-bit.
(ix86_function_ok_for_sibcall): Tidy.  Disallow MS->SYSV sibcalls.
(ix86_expand_call): Use sibcall_insn_operand when needed.  Don't
force 64-bit sibcalls into R11.
* config/i386/constraints.md (U): New constraint.
* config/i386/i386.md (sibcall_1, sibcall_value_1): Use it.
(sibcall_1_rex64, sibcall_value_1_rex64): Likewise.
(sibcall_1_rex64_v, sibcall_value_1_rex64_v): Remove.

From-SVN: r149373
gcc/ChangeLog
gcc/config/i386/constraints.md
gcc/config/i386/i386-protos.h
gcc/config/i386/i386.c
gcc/config/i386/i386.h
gcc/config/i386/i386.md