diff options
author | Kai Tietz <ktietz@redhat.com> | 2014-06-01 12:36:55 +0200 |
---|---|---|
committer | Kai Tietz <ktietz@gcc.gnu.org> | 2014-06-01 12:36:55 +0200 |
commit | 6041d142c48fc03e72d132a29439121e7978e4f3 (patch) | |
tree | 7477949fe5340896723a29dcb3714883d5f1ee85 /gcc | |
parent | 4a065d4a62be519ba75eeee71ae36e9b18c52188 (diff) | |
download | gcc-6041d142c48fc03e72d132a29439121e7978e4f3.zip gcc-6041d142c48fc03e72d132a29439121e7978e4f3.tar.gz gcc-6041d142c48fc03e72d132a29439121e7978e4f3.tar.bz2 |
re PR target/61377 (Bootstrap failure on x86_64-apple-darwin13)
PR target/61377
* constrains.md (define_constrain): New 'Bs' constraint.
* i386.md (sibcall_insn_operand): Use Bs instead of m constraint.
From-SVN: r211112
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/i386/constraints.md | 10 | ||||
-rw-r--r-- | gcc/config/i386/i386.md | 8 |
3 files changed, 19 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 60ef5c6..29ce4be 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2014-06-01 Kai Tietz <ktietz@redhat.com> + + PR target/61377 + * constrains.md (define_constrain): New 'Bs' constraint. + * i386.md (sibcall_insn_operand): Use Bs instead of m constraint. + 2014-05-31 Andreas Schwab <schwab@linux-m68k.org> * config/m68k/m68k.md (beq0_di, bne0_di): Make the "o" constraint diff --git a/gcc/config/i386/constraints.md b/gcc/config/i386/constraints.md index 567e705..b142c19 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 +;;; H ;;; h j ;; Integer register constraints. @@ -144,6 +144,14 @@ "(ix86_fpmath & FPMATH_387) ? FLOAT_REGS : NO_REGS" "@internal Any x87 register when 80387 FP arithmetic is enabled.") +;; We use the B prefix to denote any number of internal memory operands: +;; s Sibling memory operand. + +(define_constraint "Bs" + "@internal Sibcall memory operand." + (and (not (match_test "TARGET_X32")) + (match_operand 0 "sibcall_memory_operand"))) + (define_register_constraint "v" "TARGET_SSE ? ALL_SSE_REGS : NO_REGS" "Any EVEX encodable SSE register (@code{%xmm0-%xmm31}).") diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md index 8d363bd..6fc69ff 100644 --- a/gcc/config/i386/i386.md +++ b/gcc/config/i386/i386.md @@ -11376,7 +11376,7 @@ [(set_attr "type" "call")]) (define_insn "*sibcall" - [(call (mem:QI (match_operand:W 0 "sibcall_insn_operand" "Uzm")) + [(call (mem:QI (match_operand:W 0 "sibcall_insn_operand" "UzBs")) (match_operand 1))] "SIBLING_CALL_P (insn)" "* return ix86_output_call_insn (insn, operands[0]);" @@ -11406,7 +11406,7 @@ [(set_attr "type" "call")]) (define_insn "*sibcall_pop" - [(call (mem:QI (match_operand:SI 0 "sibcall_insn_operand" "Uzm")) + [(call (mem:QI (match_operand:SI 0 "sibcall_insn_operand" "UzBs")) (match_operand 1)) (set (reg:SI SP_REG) (plus:SI (reg:SI SP_REG) @@ -11451,7 +11451,7 @@ (define_insn "*sibcall_value" [(set (match_operand 0) - (call (mem:QI (match_operand:W 1 "sibcall_insn_operand" "Uzm")) + (call (mem:QI (match_operand:W 1 "sibcall_insn_operand" "UzBs")) (match_operand 2)))] "SIBLING_CALL_P (insn)" "* return ix86_output_call_insn (insn, operands[1]);" @@ -11494,7 +11494,7 @@ (define_insn "*sibcall_value_pop" [(set (match_operand 0) - (call (mem:QI (match_operand:SI 1 "sibcall_insn_operand" "Uzm")) + (call (mem:QI (match_operand:SI 1 "sibcall_insn_operand" "UzBs")) (match_operand 2))) (set (reg:SI SP_REG) (plus:SI (reg:SI SP_REG) |