aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUros Bizjak <ubizjak@gmail.com>2009-11-03 09:26:02 +0100
committerUros Bizjak <uros@gcc.gnu.org>2009-11-03 09:26:02 +0100
commit9d1a984546a59678be0a5196a87e649f5551dcc7 (patch)
treea0ede608e6ee06d4dc7dd22ee001ff6436c54342
parent55a19d494b903ffdf754217d3ff5bc66d1ad1954 (diff)
downloadgcc-9d1a984546a59678be0a5196a87e649f5551dcc7.zip
gcc-9d1a984546a59678be0a5196a87e649f5551dcc7.tar.gz
gcc-9d1a984546a59678be0a5196a87e649f5551dcc7.tar.bz2
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
-rw-r--r--gcc/ChangeLog15
-rw-r--r--gcc/config/i386/i386.md54
2 files changed, 38 insertions, 31 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 6ab0707..f9f37d8 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,14 +1,21 @@
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
* config/i386/i386.h (ix86_arch_indices) <X86_ARCH_CALL_ESP>: New.
(TARGET_CALL_ESP): New define.
* config/i386/i386.c (initial_ix86_tune_features): Initialize
X86_ARCH_CALL_ESP.
- * config/i386/i386.md
- (*call_pop_1_esp, *call_1_esp, *call_value_pop_1_esp,
- *call_value_1_esp): Rename from *call_pop_1, *call_1,
- *call_value_pop_1 and *call_value_1. Depend on TARGET_CALL_ESP.
+ * config/i386/i386.md (*call_pop_1_esp, *call_1_esp,
+ *call_value_pop_1_esp, *call_value_1_esp): Rename from *call_pop_1,
+ *call_1, *call_value_pop_1 and *call_value_1. Depend on
+ TARGET_CALL_ESP.
(*call_pop_1, *call_1, *call_value_pop_1, *call_value_1):
New patterns, use "lsm" as operand 1 constraint.
* config/i386/predicates.md (call_insn_operand): Depend on
diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md
index dc605ab..a17a00c 100644
--- a/gcc/config/i386/i386.md
+++ b/gcc/config/i386/i386.md
@@ -21252,19 +21252,19 @@
(call (mem:QI (match_operand:DI 1 "call_insn_operand" "rsm"))
(match_operand:DI 2 "" "")))
(unspec [(const_int 0)] UNSPEC_MS_TO_SYSV_CALL)
- (clobber (reg:TI 27))
- (clobber (reg:TI 28))
- (clobber (reg:TI 45))
- (clobber (reg:TI 46))
- (clobber (reg:TI 47))
- (clobber (reg:TI 48))
- (clobber (reg:TI 49))
- (clobber (reg:TI 50))
- (clobber (reg:TI 51))
- (clobber (reg:TI 52))
+ (clobber (reg:TI XMM6_REG))
+ (clobber (reg:TI XMM7_REG))
+ (clobber (reg:TI XMM8_REG))
+ (clobber (reg:TI XMM9_REG))
+ (clobber (reg:TI XMM10_REG))
+ (clobber (reg:TI XMM11_REG))
+ (clobber (reg:TI XMM12_REG))
+ (clobber (reg:TI XMM13_REG))
+ (clobber (reg:TI XMM14_REG))
+ (clobber (reg:TI XMM15_REG))
(clobber (reg:DI SI_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))
return "call\t%P1";
@@ -21303,14 +21303,14 @@
(define_expand "sse_prologue_save"
[(parallel [(set (match_operand:BLK 0 "" "")
- (unspec:BLK [(reg:DI 21)
- (reg:DI 22)
- (reg:DI 23)
- (reg:DI 24)
- (reg:DI 25)
- (reg:DI 26)
- (reg:DI 27)
- (reg:DI 28)] UNSPEC_SSE_PROLOGUE_SAVE))
+ (unspec:BLK [(reg:DI XMM0_REG)
+ (reg:DI XMM1_REG)
+ (reg:DI XMM2_REG)
+ (reg:DI XMM3_REG)
+ (reg:DI XMM4_REG)
+ (reg:DI XMM5_REG)
+ (reg:DI XMM6_REG)
+ (reg:DI XMM7_REG)] UNSPEC_SSE_PROLOGUE_SAVE))
(use (match_operand:DI 1 "register_operand" ""))
(use (match_operand:DI 2 "immediate_operand" ""))
(use (label_ref:DI (match_operand 3 "" "")))])]
@@ -21320,14 +21320,14 @@
(define_insn "*sse_prologue_save_insn"
[(set (mem:BLK (plus:DI (match_operand:DI 0 "register_operand" "R")
(match_operand:DI 4 "const_int_operand" "n")))
- (unspec:BLK [(reg:DI 21)
- (reg:DI 22)
- (reg:DI 23)
- (reg:DI 24)
- (reg:DI 25)
- (reg:DI 26)
- (reg:DI 27)
- (reg:DI 28)] UNSPEC_SSE_PROLOGUE_SAVE))
+ (unspec:BLK [(reg:DI XMM0_REG)
+ (reg:DI XMM1_REG)
+ (reg:DI XMM2_REG)
+ (reg:DI XMM3_REG)
+ (reg:DI XMM4_REG)
+ (reg:DI XMM5_REG)
+ (reg:DI XMM6_REG)
+ (reg:DI XMM7_REG)] UNSPEC_SSE_PROLOGUE_SAVE))
(use (match_operand:DI 1 "register_operand" "r"))
(use (match_operand:DI 2 "const_int_operand" "i"))
(use (label_ref:DI (match_operand 3 "" "X")))]