diff options
author | Richard Henderson <rth@redhat.com> | 2009-07-08 09:41:23 -0700 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2009-07-08 09:41:23 -0700 |
commit | ac2e563fcfce40295dc962d8e98796b794726b0f (patch) | |
tree | f71db91f4b324227a6722f9b26010f65116c833b /gcc/config/i386/constraints.md | |
parent | acb78844c730bdb9b411442caa4df7ee78309596 (diff) | |
download | gcc-ac2e563fcfce40295dc962d8e98796b794726b0f.zip gcc-ac2e563fcfce40295dc962d8e98796b794726b0f.tar.gz gcc-ac2e563fcfce40295dc962d8e98796b794726b0f.tar.bz2 |
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
Diffstat (limited to 'gcc/config/i386/constraints.md')
-rw-r--r-- | gcc/config/i386/constraints.md | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/config/i386/constraints.md b/gcc/config/i386/constraints.md index 134ef61..89722bb 100644 --- a/gcc/config/i386/constraints.md +++ b/gcc/config/i386/constraints.md @@ -18,7 +18,7 @@ ;; <http://www.gnu.org/licenses/>. ;;; Unused letters: -;;; B H TU W +;;; B H T W ;;; h jk vw z ;; Integer register constraints. @@ -62,6 +62,9 @@ "The @code{a} and @code{d} registers, as a pair (for instructions that return half the result in one and half in the other).") +(define_register_constraint "U" "CLOBBERED_REGS" + "The call-clobbered integer registers.") + ;; Floating-point register constraints. (define_register_constraint "f" "TARGET_80387 || TARGET_FLOAT_RETURNS_IN_80387 ? FLOAT_REGS : NO_REGS" |