OSDN Git Service

* config/i386/i386.md (*call_value_1_rex64_ms_sysv): Use register
authoruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 3 Nov 2009 08:26:02 +0000 (08:26 +0000)
committeruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 3 Nov 2009 08:26:02 +0000 (08:26 +0000)
names instead of numerical constants.
(sse_prologue_save): Ditto.
(*sse_prologue_save_insn): Ditto.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@153840 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/i386/i386.md

index 6ab0707..f9f37d8 100644 (file)
@@ -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 
index dc605ab..a17a00c 100644 (file)
        (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";
 
 (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 "" "")))])]
 (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")))]