OSDN Git Service

2001-07-18 Andrew Haley <aph@cambridge.redhat.com>
authoraph <aph@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 24 Jul 2001 15:52:26 +0000 (15:52 +0000)
committeraph <aph@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 24 Jul 2001 15:52:26 +0000 (15:52 +0000)
        * config/sh/sh.md (ashlsi3_std splitter): Split only after reload.
        (ashlsi3_n splitter): Likewise.
        (lshrsi3_n splitter): Likewise.

        (GOTaddr2picreg): Make const SImode.
        (sym_label2reg): Likewise.
        (symGOT2reg): Likewise.
        (symGOTOFF2reg) Likewise.

        (casesi_worker_0): Make unspec SImode.

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

gcc/ChangeLog
gcc/config/sh/sh.md

index bea9ac4..8fb3efe 100644 (file)
@@ -1,5 +1,18 @@
 2001-07-18  Andrew Haley  <aph@cambridge.redhat.com>
 
+        * config/sh/sh.md (ashlsi3_std splitter): Split only after reload.
+        (ashlsi3_n splitter): Likewise.
+        (lshrsi3_n splitter): Likewise.
+
+        (GOTaddr2picreg): Make const SImode.
+        (sym_label2reg): Likewise.
+        (symGOT2reg): Likewise.
+        (symGOTOFF2reg) Likewise.
+
+        (casesi_worker_0): Make unspec SImode.
+
+2001-07-18  Andrew Haley  <aph@cambridge.redhat.com>
+
         * config/sh/sh.c (barrier_align): Check that an operand really is
         an insn before extracting its INSN_CODE.
 
index c625b70..5eba38e 100644 (file)
    shll%O2     %0
    #"
   "TARGET_SH3
+   && reload_completed
    && GET_CODE (operands[2]) == CONST_INT
    && ! CONST_OK_FOR_K (INTVAL (operands[2]))"
   [(set (match_dup 3) (match_dup 2))
        (ashift:SI (match_operand:SI 1 "arith_reg_operand" "")
                   (match_operand:SI 2 "const_int_operand" "n")))
    (clobber (reg:SI T_REG))]
-  ""
+  "reload_completed"
   [(use (reg:SI R0_REG))]
   "
 {
        (ashift:HI (match_operand:HI 1 "arith_reg_operand" "")
                   (match_operand:HI 2 "const_int_operand" "n")))
    (clobber (reg:SI T_REG))]
-  ""
+  "reload_completed"
   [(use (reg:SI R0_REG))]
   "
 {
        (lshiftrt:SI (match_operand:SI 1 "arith_reg_operand" "")
                     (match_operand:SI 2 "const_int_operand" "n")))
    (clobber (reg:SI T_REG))]
-  ""
+  "reload_completed"
   [(use (reg:SI R0_REG))]
   "
 {
   [(set (reg:SI R0_REG)
        (unspec [(const (unspec [(match_dup 1)] UNSPEC_PIC))]
                UNSPEC_MOVA))
-   (set (match_dup 0) (const (unspec [(match_dup 1)] UNSPEC_PIC)))
+   (set (match_dup 0) (const:SI (unspec:SI [(match_dup 1)] UNSPEC_PIC)))
    (set (match_dup 0) (plus:SI (match_dup 0) (reg:SI R0_REG)))]
   "" "
 {
 (define_expand "sym_label2reg"
   [(set (match_operand:SI 0 "" "")
        (const (minus:SI
-               (const (unspec [(match_operand:SI 1 "" "")] UNSPEC_PIC))
+               (const:SI (unspec:SI [(match_operand:SI 1 "" "")] UNSPEC_PIC))
                (const (plus:SI
                        (match_operand:SI 2 "" "")
                        (const_int 2))))))]
 
 (define_expand "symGOT2reg"
   [(set (match_operand:SI 0 "" "")
-        (const (unspec [(match_operand:SI 1 "" "")] UNSPEC_GOT)))
+        (const:SI (unspec:SI [(match_operand:SI 1 "" "")] UNSPEC_GOT)))
   (set (match_dup 0) (plus:SI (match_dup 0) (match_dup 2)))
   (set (match_dup 0) (mem:SI (match_dup 0)))]
   ""
 
 (define_expand "symGOTOFF2reg"
   [(set (match_operand:SI 0 "" "")
-       (const (unspec [(match_operand:SI 1 "" "")] UNSPEC_GOTOFF)))
+       (const:SI (unspec:SI [(match_operand:SI 1 "" "")] UNSPEC_GOTOFF)))
   (set (match_dup 0) (plus:SI (match_dup 0) (match_dup 2)))]
   ""
   "
 
 (define_insn "casesi_worker_0"
   [(set (match_operand:SI 0 "register_operand" "=r,r")
-       (unspec [(match_operand 1 "register_operand" "0,r")
+       (unspec:SI [(match_operand 1 "register_operand" "0,r")
                 (label_ref (match_operand 2 "" ""))] UNSPEC_CASESI))
    (clobber (match_scratch:SI 3 "=X,1"))
    (clobber (match_scratch:SI 4 "=&z,z"))]
 
 (define_split
   [(set (match_operand:SI 0 "register_operand" "")
-       (unspec [(match_operand 1 "register_operand" "")
+       (unspec:SI [(match_operand 1 "register_operand" "")
                 (label_ref (match_operand 2 "" ""))] UNSPEC_CASESI))
    (clobber (match_scratch:SI 3 ""))
    (clobber (match_scratch:SI 4 ""))]
   "TARGET_SH2 && reload_completed"
   [(set (reg:SI R0_REG) (unspec [(label_ref (match_dup 2))] UNSPEC_MOVA))
    (parallel [(set (match_dup 0)
-             (unspec [(reg:SI R0_REG) (match_dup 1)
+             (unspec:SI [(reg:SI R0_REG) (match_dup 1)
                       (label_ref (match_dup 2))] UNSPEC_CASESI))
              (clobber (match_dup 3))])]
   "LABEL_NUSES (operands[2])++;")