Commit 9d1a9845 by Uros Bizjak Committed by Uros Bizjak

i386.md (*call_value_1_rex64_ms_sysv): Use register names instead of numerical constants.

	* config/i386/i386.md (*call_value_1_rex64_ms_sysv): Use register
	names instead of numerical constants.
	(sse_prologue_save): Ditto.
	(*sse_prologue_save_insn): Ditto.

From-SVN: r153840
parent 55a19d49
2009-11-03 Uros Bizjak <ubizjak@gmail.com> 2009-11-03 Uros Bizjak <ubizjak@gmail.com>
* config/i386/i386.md (*call_value_1_rex64_ms_sysv): Use register
names instead of numerical constants.
(sse_prologue_save): Ditto.
(*sse_prologue_save_insn): Ditto.
2009-11-03 Uros Bizjak <ubizjak@gmail.com>
PR target/41900 PR target/41900
* config/i386/i386.h (ix86_arch_indices) <X86_ARCH_CALL_ESP>: New. * config/i386/i386.h (ix86_arch_indices) <X86_ARCH_CALL_ESP>: New.
(TARGET_CALL_ESP): New define. (TARGET_CALL_ESP): New define.
* config/i386/i386.c (initial_ix86_tune_features): Initialize * config/i386/i386.c (initial_ix86_tune_features): Initialize
X86_ARCH_CALL_ESP. X86_ARCH_CALL_ESP.
* config/i386/i386.md * config/i386/i386.md (*call_pop_1_esp, *call_1_esp,
(*call_pop_1_esp, *call_1_esp, *call_value_pop_1_esp, *call_value_pop_1_esp, *call_value_1_esp): Rename from *call_pop_1,
*call_value_1_esp): Rename from *call_pop_1, *call_1, *call_1, *call_value_pop_1 and *call_value_1. Depend on
*call_value_pop_1 and *call_value_1. Depend on TARGET_CALL_ESP. TARGET_CALL_ESP.
(*call_pop_1, *call_1, *call_value_pop_1, *call_value_1): (*call_pop_1, *call_1, *call_value_pop_1, *call_value_1):
New patterns, use "lsm" as operand 1 constraint. New patterns, use "lsm" as operand 1 constraint.
* config/i386/predicates.md (call_insn_operand): Depend on * config/i386/predicates.md (call_insn_operand): Depend on
...@@ -21252,19 +21252,19 @@ ...@@ -21252,19 +21252,19 @@
(call (mem:QI (match_operand:DI 1 "call_insn_operand" "rsm")) (call (mem:QI (match_operand:DI 1 "call_insn_operand" "rsm"))
(match_operand:DI 2 "" ""))) (match_operand:DI 2 "" "")))
(unspec [(const_int 0)] UNSPEC_MS_TO_SYSV_CALL) (unspec [(const_int 0)] UNSPEC_MS_TO_SYSV_CALL)
(clobber (reg:TI 27)) (clobber (reg:TI XMM6_REG))
(clobber (reg:TI 28)) (clobber (reg:TI XMM7_REG))
(clobber (reg:TI 45)) (clobber (reg:TI XMM8_REG))
(clobber (reg:TI 46)) (clobber (reg:TI XMM9_REG))
(clobber (reg:TI 47)) (clobber (reg:TI XMM10_REG))
(clobber (reg:TI 48)) (clobber (reg:TI XMM11_REG))
(clobber (reg:TI 49)) (clobber (reg:TI XMM12_REG))
(clobber (reg:TI 50)) (clobber (reg:TI XMM13_REG))
(clobber (reg:TI 51)) (clobber (reg:TI XMM14_REG))
(clobber (reg:TI 52)) (clobber (reg:TI XMM15_REG))
(clobber (reg:DI SI_REG)) (clobber (reg:DI SI_REG))
(clobber (reg:DI DI_REG))] (clobber (reg:DI DI_REG))]
"!SIBLING_CALL_P (insn) && TARGET_64BIT" "TARGET_64BIT && !SIBLING_CALL_P (insn)"
{ {
if (constant_call_address_operand (operands[1], Pmode)) if (constant_call_address_operand (operands[1], Pmode))
return "call\t%P1"; return "call\t%P1";
...@@ -21303,14 +21303,14 @@ ...@@ -21303,14 +21303,14 @@
(define_expand "sse_prologue_save" (define_expand "sse_prologue_save"
[(parallel [(set (match_operand:BLK 0 "" "") [(parallel [(set (match_operand:BLK 0 "" "")
(unspec:BLK [(reg:DI 21) (unspec:BLK [(reg:DI XMM0_REG)
(reg:DI 22) (reg:DI XMM1_REG)
(reg:DI 23) (reg:DI XMM2_REG)
(reg:DI 24) (reg:DI XMM3_REG)
(reg:DI 25) (reg:DI XMM4_REG)
(reg:DI 26) (reg:DI XMM5_REG)
(reg:DI 27) (reg:DI XMM6_REG)
(reg:DI 28)] UNSPEC_SSE_PROLOGUE_SAVE)) (reg:DI XMM7_REG)] UNSPEC_SSE_PROLOGUE_SAVE))
(use (match_operand:DI 1 "register_operand" "")) (use (match_operand:DI 1 "register_operand" ""))
(use (match_operand:DI 2 "immediate_operand" "")) (use (match_operand:DI 2 "immediate_operand" ""))
(use (label_ref:DI (match_operand 3 "" "")))])] (use (label_ref:DI (match_operand 3 "" "")))])]
...@@ -21320,14 +21320,14 @@ ...@@ -21320,14 +21320,14 @@
(define_insn "*sse_prologue_save_insn" (define_insn "*sse_prologue_save_insn"
[(set (mem:BLK (plus:DI (match_operand:DI 0 "register_operand" "R") [(set (mem:BLK (plus:DI (match_operand:DI 0 "register_operand" "R")
(match_operand:DI 4 "const_int_operand" "n"))) (match_operand:DI 4 "const_int_operand" "n")))
(unspec:BLK [(reg:DI 21) (unspec:BLK [(reg:DI XMM0_REG)
(reg:DI 22) (reg:DI XMM1_REG)
(reg:DI 23) (reg:DI XMM2_REG)
(reg:DI 24) (reg:DI XMM3_REG)
(reg:DI 25) (reg:DI XMM4_REG)
(reg:DI 26) (reg:DI XMM5_REG)
(reg:DI 27) (reg:DI XMM6_REG)
(reg:DI 28)] UNSPEC_SSE_PROLOGUE_SAVE)) (reg:DI XMM7_REG)] UNSPEC_SSE_PROLOGUE_SAVE))
(use (match_operand:DI 1 "register_operand" "r")) (use (match_operand:DI 1 "register_operand" "r"))
(use (match_operand:DI 2 "const_int_operand" "i")) (use (match_operand:DI 2 "const_int_operand" "i"))
(use (label_ref:DI (match_operand 3 "" "X")))] (use (label_ref:DI (match_operand 3 "" "X")))]
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment