[multiple changes]
authorDavid Edelsohn <dje@gcc.gnu.org>
Wed, 31 Mar 2004 04:29:13 +0000 (23:29 -0500)
committerDavid Edelsohn <dje@gcc.gnu.org>
Wed, 31 Mar 2004 04:29:13 +0000 (23:29 -0500)
2004-03-30  David Edelsohn  <edelsohn@gnu.org>

        * config/rs6000/rs6000.md (tls_gd_32, tls_gd_64,
        tls_ld_32, tls_ld_64, tls_dtprel_32, tls_dtprel_64,
        tls_dtprel_ha_32, tls_dtprel_ha_64,
        tls_dtprel_lo_32, tls_dtprel_lo_64,
        tls_got_dtprel_64, tls_tprel_32, tls_tprel_64,
        tls_tprel_ha_32, tls_tprel_ha_64,
        tls_tprel_lo_32, tls_tprel_lo_64,
        tls_got_tprel_32, tls_got_tprel_64,
        tls_tls_32, tls_tls_64): Replace register_operand with
        gpc_reg_operand.

2004-03-30  Mostafa Hagog  <mustafa@il.ibm.com>

        * config/rs6000/rs6000.md (*ctrsi_internal1, *ctrsi_internal2,
        *ctrdi_internal1, *ctrdi_internal2, *ctrsi_internal3,
        *ctrsi_internal4, *ctrdi_internal3, *ctrdi_internal4,
        *ctrsi_internal5, *ctrsi_internal6, *ctrdi_internal5,
        *ctrdi_internal6): Replace register_operand with
        nonimmediate_operand.

From-SVN: r80114

gcc/ChangeLog
gcc/config/rs6000/rs6000.md

index 61813c4529e09c2b8852b4a879bdc684a5ac2ac3..462feb758d1b5b0cf9321f6aa6657542284e6c98 100644 (file)
@@ -1,3 +1,25 @@
+2004-03-30  David Edelsohn  <edelsohn@gnu.org>
+
+       * config/rs6000/rs6000.md (tls_gd_32, tls_gd_64,
+       tls_ld_32, tls_ld_64, tls_dtprel_32, tls_dtprel_64,
+       tls_dtprel_ha_32, tls_dtprel_ha_64,
+       tls_dtprel_lo_32, tls_dtprel_lo_64,
+       tls_got_dtprel_64, tls_tprel_32, tls_tprel_64,
+       tls_tprel_ha_32, tls_tprel_ha_64,
+       tls_tprel_lo_32, tls_tprel_lo_64,
+       tls_got_tprel_32, tls_got_tprel_64,
+       tls_tls_32, tls_tls_64): Replace register_operand with
+       gpc_reg_operand.
+
+2004-03-30  Mostafa Hagog  <mustafa@il.ibm.com>
+
+       * config/rs6000/rs6000.md (*ctrsi_internal1, *ctrsi_internal2,
+       *ctrdi_internal1, *ctrdi_internal2, *ctrsi_internal3,
+       *ctrsi_internal4, *ctrdi_internal3, *ctrdi_internal4,
+       *ctrsi_internal5, *ctrsi_internal6, *ctrdi_internal5,
+       *ctrdi_internal6): Replace register_operand with
+       nonimmediate_operand.
+
 2004-03-29  Fariborz Jahanian <fjahanian@apple.com>
 
         * fold-const.c (fold): Reassociate multiply expression
index b88aef9fb992ea979dd945e8d5ffef4a61a46f73..921ed633eb3ed66876780fc7e566bd6e9367ae6f 100644 (file)
 
 ;; "b" output constraint here and on tls_ld to support tls linker optimization.
 (define_insn "tls_gd_32"
-  [(set (match_operand:SI 0 "register_operand" "=b")
-       (unspec:SI [(match_operand:SI 1 "register_operand" "b")
+  [(set (match_operand:SI 0 "gpc_reg_operand" "=b")
+       (unspec:SI [(match_operand:SI 1 "gpc_reg_operand" "b")
                    (match_operand:SI 2 "rs6000_tls_symbol_ref" "")]
                   UNSPEC_TLSGD))]
   "HAVE_AS_TLS && !TARGET_64BIT"
   "addi %0,%1,%2@got@tlsgd")
 
 (define_insn "tls_gd_64"
-  [(set (match_operand:DI 0 "register_operand" "=b")
-       (unspec:DI [(match_operand:DI 1 "register_operand" "b")
+  [(set (match_operand:DI 0 "gpc_reg_operand" "=b")
+       (unspec:DI [(match_operand:DI 1 "gpc_reg_operand" "b")
                    (match_operand:DI 2 "rs6000_tls_symbol_ref" "")]
                   UNSPEC_TLSGD))]
   "HAVE_AS_TLS && TARGET_64BIT"
   "addi %0,%1,%2@got@tlsgd")
 
 (define_insn "tls_ld_32"
-  [(set (match_operand:SI 0 "register_operand" "=b")
-       (unspec:SI [(match_operand:SI 1 "register_operand" "b")]
+  [(set (match_operand:SI 0 "gpc_reg_operand" "=b")
+       (unspec:SI [(match_operand:SI 1 "gpc_reg_operand" "b")]
                   UNSPEC_TLSLD))]
   "HAVE_AS_TLS && !TARGET_64BIT"
   "addi %0,%1,%&@got@tlsld")
 
 (define_insn "tls_ld_64"
-  [(set (match_operand:DI 0 "register_operand" "=b")
-       (unspec:DI [(match_operand:DI 1 "register_operand" "b")]
+  [(set (match_operand:DI 0 "gpc_reg_operand" "=b")
+       (unspec:DI [(match_operand:DI 1 "gpc_reg_operand" "b")]
                   UNSPEC_TLSLD))]
   "HAVE_AS_TLS && TARGET_64BIT"
   "addi %0,%1,%&@got@tlsld")
 
 (define_insn "tls_dtprel_32"
-  [(set (match_operand:SI 0 "register_operand" "=r")
-       (unspec:SI [(match_operand:SI 1 "register_operand" "b")
+  [(set (match_operand:SI 0 "gpc_reg_operand" "=r")
+       (unspec:SI [(match_operand:SI 1 "gpc_reg_operand" "b")
                    (match_operand:SI 2 "rs6000_tls_symbol_ref" "")]
                   UNSPEC_TLSDTPREL))]
   "HAVE_AS_TLS && !TARGET_64BIT"
   "addi %0,%1,%2@dtprel")
 
 (define_insn "tls_dtprel_64"
-  [(set (match_operand:DI 0 "register_operand" "=r")
-       (unspec:DI [(match_operand:DI 1 "register_operand" "b")
+  [(set (match_operand:DI 0 "gpc_reg_operand" "=r")
+       (unspec:DI [(match_operand:DI 1 "gpc_reg_operand" "b")
                    (match_operand:DI 2 "rs6000_tls_symbol_ref" "")]
                   UNSPEC_TLSDTPREL))]
   "HAVE_AS_TLS && TARGET_64BIT"
   "addi %0,%1,%2@dtprel")
 
 (define_insn "tls_dtprel_ha_32"
-  [(set (match_operand:SI 0 "register_operand" "=r")
-       (unspec:SI [(match_operand:SI 1 "register_operand" "b")
+  [(set (match_operand:SI 0 "gpc_reg_operand" "=r")
+       (unspec:SI [(match_operand:SI 1 "gpc_reg_operand" "b")
                    (match_operand:SI 2 "rs6000_tls_symbol_ref" "")]
                   UNSPEC_TLSDTPRELHA))]
   "HAVE_AS_TLS && !TARGET_64BIT"
   "addis %0,%1,%2@dtprel@ha")
 
 (define_insn "tls_dtprel_ha_64"
-  [(set (match_operand:DI 0 "register_operand" "=r")
-       (unspec:DI [(match_operand:DI 1 "register_operand" "b")
+  [(set (match_operand:DI 0 "gpc_reg_operand" "=r")
+       (unspec:DI [(match_operand:DI 1 "gpc_reg_operand" "b")
                    (match_operand:DI 2 "rs6000_tls_symbol_ref" "")]
                   UNSPEC_TLSDTPRELHA))]
   "HAVE_AS_TLS && TARGET_64BIT"
   "addis %0,%1,%2@dtprel@ha")
 
 (define_insn "tls_dtprel_lo_32"
-  [(set (match_operand:SI 0 "register_operand" "=r")
-       (unspec:SI [(match_operand:SI 1 "register_operand" "b")
+  [(set (match_operand:SI 0 "gpc_reg_operand" "=r")
+       (unspec:SI [(match_operand:SI 1 "gpc_reg_operand" "b")
                    (match_operand:SI 2 "rs6000_tls_symbol_ref" "")]
                   UNSPEC_TLSDTPRELLO))]
   "HAVE_AS_TLS && !TARGET_64BIT"
   "addi %0,%1,%2@dtprel@l")
 
 (define_insn "tls_dtprel_lo_64"
-  [(set (match_operand:DI 0 "register_operand" "=r")
-       (unspec:DI [(match_operand:DI 1 "register_operand" "b")
+  [(set (match_operand:DI 0 "gpc_reg_operand" "=r")
+       (unspec:DI [(match_operand:DI 1 "gpc_reg_operand" "b")
                    (match_operand:DI 2 "rs6000_tls_symbol_ref" "")]
                   UNSPEC_TLSDTPRELLO))]
   "HAVE_AS_TLS && TARGET_64BIT"
   "addi %0,%1,%2@dtprel@l")
 
 (define_insn "tls_got_dtprel_32"
-  [(set (match_operand:SI 0 "register_operand" "=r")
-       (unspec:SI [(match_operand:SI 1 "register_operand" "b")
+  [(set (match_operand:SI 0 "gpc_reg_operand" "=r")
+       (unspec:SI [(match_operand:SI 1 "gpc_reg_operand" "b")
                    (match_operand:SI 2 "rs6000_tls_symbol_ref" "")]
                   UNSPEC_TLSGOTDTPREL))]
   "HAVE_AS_TLS && !TARGET_64BIT"
   "lwz %0,%2@got@dtprel(%1)")
 
 (define_insn "tls_got_dtprel_64"
-  [(set (match_operand:DI 0 "register_operand" "=r")
-       (unspec:DI [(match_operand:DI 1 "register_operand" "b")
+  [(set (match_operand:DI 0 "gpc_reg_operand" "=r")
+       (unspec:DI [(match_operand:DI 1 "gpc_reg_operand" "b")
                    (match_operand:DI 2 "rs6000_tls_symbol_ref" "")]
                   UNSPEC_TLSGOTDTPREL))]
   "HAVE_AS_TLS && TARGET_64BIT"
   "ld %0,%2@got@dtprel(%1)")
 
 (define_insn "tls_tprel_32"
-  [(set (match_operand:SI 0 "register_operand" "=r")
-       (unspec:SI [(match_operand:SI 1 "register_operand" "b")
+  [(set (match_operand:SI 0 "gpc_reg_operand" "=r")
+       (unspec:SI [(match_operand:SI 1 "gpc_reg_operand" "b")
                    (match_operand:SI 2 "rs6000_tls_symbol_ref" "")]
                   UNSPEC_TLSTPREL))]
   "HAVE_AS_TLS && !TARGET_64BIT"
   "addi %0,%1,%2@tprel")
 
 (define_insn "tls_tprel_64"
-  [(set (match_operand:DI 0 "register_operand" "=r")
-       (unspec:DI [(match_operand:DI 1 "register_operand" "b")
+  [(set (match_operand:DI 0 "gpc_reg_operand" "=r")
+       (unspec:DI [(match_operand:DI 1 "gpc_reg_operand" "b")
                    (match_operand:DI 2 "rs6000_tls_symbol_ref" "")]
                   UNSPEC_TLSTPREL))]
   "HAVE_AS_TLS && TARGET_64BIT"
   "addi %0,%1,%2@tprel")
 
 (define_insn "tls_tprel_ha_32"
-  [(set (match_operand:SI 0 "register_operand" "=r")
-       (unspec:SI [(match_operand:SI 1 "register_operand" "b")
+  [(set (match_operand:SI 0 "gpc_reg_operand" "=r")
+       (unspec:SI [(match_operand:SI 1 "gpc_reg_operand" "b")
                    (match_operand:SI 2 "rs6000_tls_symbol_ref" "")]
                   UNSPEC_TLSTPRELHA))]
   "HAVE_AS_TLS && !TARGET_64BIT"
   "addis %0,%1,%2@tprel@ha")
 
 (define_insn "tls_tprel_ha_64"
-  [(set (match_operand:DI 0 "register_operand" "=r")
-       (unspec:DI [(match_operand:DI 1 "register_operand" "b")
+  [(set (match_operand:DI 0 "gpc_reg_operand" "=r")
+       (unspec:DI [(match_operand:DI 1 "gpc_reg_operand" "b")
                    (match_operand:DI 2 "rs6000_tls_symbol_ref" "")]
                   UNSPEC_TLSTPRELHA))]
   "HAVE_AS_TLS && TARGET_64BIT"
   "addis %0,%1,%2@tprel@ha")
 
 (define_insn "tls_tprel_lo_32"
-  [(set (match_operand:SI 0 "register_operand" "=r")
-       (unspec:SI [(match_operand:SI 1 "register_operand" "b")
+  [(set (match_operand:SI 0 "gpc_reg_operand" "=r")
+       (unspec:SI [(match_operand:SI 1 "gpc_reg_operand" "b")
                    (match_operand:SI 2 "rs6000_tls_symbol_ref" "")]
                   UNSPEC_TLSTPRELLO))]
   "HAVE_AS_TLS && !TARGET_64BIT"
   "addi %0,%1,%2@tprel@l")
 
 (define_insn "tls_tprel_lo_64"
-  [(set (match_operand:DI 0 "register_operand" "=r")
-       (unspec:DI [(match_operand:DI 1 "register_operand" "b")
+  [(set (match_operand:DI 0 "gpc_reg_operand" "=r")
+       (unspec:DI [(match_operand:DI 1 "gpc_reg_operand" "b")
                    (match_operand:DI 2 "rs6000_tls_symbol_ref" "")]
                   UNSPEC_TLSTPRELLO))]
   "HAVE_AS_TLS && TARGET_64BIT"
 ;; optimization.  The linker may edit the instructions emitted by a
 ;; tls_got_tprel/tls_tls pair to addis,addi.
 (define_insn "tls_got_tprel_32"
-  [(set (match_operand:SI 0 "register_operand" "=b")
-       (unspec:SI [(match_operand:SI 1 "register_operand" "b")
+  [(set (match_operand:SI 0 "gpc_reg_operand" "=b")
+       (unspec:SI [(match_operand:SI 1 "gpc_reg_operand" "b")
                    (match_operand:SI 2 "rs6000_tls_symbol_ref" "")]
                   UNSPEC_TLSGOTTPREL))]
   "HAVE_AS_TLS && !TARGET_64BIT"
   "lwz %0,%2@got@tprel(%1)")
 
 (define_insn "tls_got_tprel_64"
-  [(set (match_operand:DI 0 "register_operand" "=b")
-       (unspec:DI [(match_operand:DI 1 "register_operand" "b")
+  [(set (match_operand:DI 0 "gpc_reg_operand" "=b")
+       (unspec:DI [(match_operand:DI 1 "gpc_reg_operand" "b")
                    (match_operand:DI 2 "rs6000_tls_symbol_ref" "")]
                   UNSPEC_TLSGOTTPREL))]
   "HAVE_AS_TLS && TARGET_64BIT"
   "ld %0,%2@got@tprel(%1)")
 
 (define_insn "tls_tls_32"
-  [(set (match_operand:SI 0 "register_operand" "=r")
-       (unspec:SI [(match_operand:SI 1 "register_operand" "b")
+  [(set (match_operand:SI 0 "gpc_reg_operand" "=r")
+       (unspec:SI [(match_operand:SI 1 "gpc_reg_operand" "b")
                    (match_operand:SI 2 "rs6000_tls_symbol_ref" "")]
                   UNSPEC_TLSTLS))]
   "HAVE_AS_TLS && !TARGET_64BIT"
   "add %0,%1,%2@tls")
 
 (define_insn "tls_tls_64"
-  [(set (match_operand:DI 0 "register_operand" "=r")
-       (unspec:DI [(match_operand:DI 1 "register_operand" "b")
+  [(set (match_operand:DI 0 "gpc_reg_operand" "=r")
+       (unspec:DI [(match_operand:DI 1 "gpc_reg_operand" "b")
                    (match_operand:DI 2 "rs6000_tls_symbol_ref" "")]
                   UNSPEC_TLSTLS))]
   "HAVE_AS_TLS && TARGET_64BIT"
                          (const_int 1))
                      (label_ref (match_operand 0 "" ""))
                      (pc)))
-   (set (match_operand:SI 2 "register_operand" "=1,*r,m,*q*c*l")
+   (set (match_operand:SI 2 "nonimmediate_operand" "=1,*r,m,*q*c*l")
        (plus:SI (match_dup 1)
                 (const_int -1)))
    (clobber (match_scratch:CC 3 "=X,&x,&x,&x"))
                          (const_int 1))
                      (pc)
                      (label_ref (match_operand 0 "" ""))))
-   (set (match_operand:SI 2 "register_operand" "=1,*r,m,*q*c*l")
+   (set (match_operand:SI 2 "nonimmediate_operand" "=1,*r,m,*q*c*l")
        (plus:SI (match_dup 1)
                 (const_int -1)))
    (clobber (match_scratch:CC 3 "=X,&x,&x,&x"))
                          (const_int 1))
                      (label_ref (match_operand 0 "" ""))
                      (pc)))
-   (set (match_operand:DI 2 "register_operand" "=1,*r,m,*c*l")
+   (set (match_operand:DI 2 "nonimmediate_operand" "=1,*r,m,*c*l")
        (plus:DI (match_dup 1)
                 (const_int -1)))
    (clobber (match_scratch:CC 3 "=X,&x,&x,&x"))
                          (const_int 1))
                      (pc)
                      (label_ref (match_operand 0 "" ""))))
-   (set (match_operand:DI 2 "register_operand" "=1,*r,m,*c*l")
+   (set (match_operand:DI 2 "nonimmediate_operand" "=1,*r,m,*c*l")
        (plus:DI (match_dup 1)
                 (const_int -1)))
    (clobber (match_scratch:CC 3 "=X,&x,&x,&x"))
                          (const_int 0))
                      (label_ref (match_operand 0 "" ""))
                      (pc)))
-   (set (match_operand:SI 2 "register_operand" "=1,*r,m,*q*c*l")
+   (set (match_operand:SI 2 "nonimmediate_operand" "=1,*r,m,*q*c*l")
        (plus:SI (match_dup 1)
                 (const_int -1)))
    (clobber (match_scratch:CC 3 "=X,&x,&x,&x"))
                          (const_int 0))
                      (pc)
                      (label_ref (match_operand 0 "" ""))))
-   (set (match_operand:SI 2 "register_operand" "=1,*r,m,*q*c*l")
+   (set (match_operand:SI 2 "nonimmediate_operand" "=1,*r,m,*q*c*l")
        (plus:SI (match_dup 1)
                 (const_int -1)))
    (clobber (match_scratch:CC 3 "=X,&x,&x,&x"))
                          (const_int 0))
                      (label_ref (match_operand 0 "" ""))
                      (pc)))
-   (set (match_operand:DI 2 "register_operand" "=1,*r,m,*c*l")
+   (set (match_operand:DI 2 "nonimmediate_operand" "=1,*r,m,*c*l")
        (plus:DI (match_dup 1)
                 (const_int -1)))
    (clobber (match_scratch:CC 3 "=X,&x,&x,&x"))
                          (const_int 0))
                      (pc)
                      (label_ref (match_operand 0 "" ""))))
-   (set (match_operand:DI 2 "register_operand" "=1,*r,m,*c*l")
+   (set (match_operand:DI 2 "nonimmediate_operand" "=1,*r,m,*c*l")
        (plus:DI (match_dup 1)
                 (const_int -1)))
    (clobber (match_scratch:CC 3 "=X,&x,&x,&x"))
                          (const_int 1))
                      (label_ref (match_operand 0 "" ""))
                      (pc)))
-   (set (match_operand:SI 2 "register_operand" "=1,*r,m,*q*c*l")
+   (set (match_operand:SI 2 "nonimmediate_operand" "=1,*r,m,*q*c*l")
        (plus:SI (match_dup 1)
                 (const_int -1)))
    (clobber (match_scratch:CC 3 "=X,&x,&x,&x"))
                          (const_int 1))
                      (pc)
                      (label_ref (match_operand 0 "" ""))))
-   (set (match_operand:SI 2 "register_operand" "=1,*r,m,*q*c*l")
+   (set (match_operand:SI 2 "nonimmediate_operand" "=1,*r,m,*q*c*l")
        (plus:SI (match_dup 1)
                 (const_int -1)))
    (clobber (match_scratch:CC 3 "=X,&x,&x,&x"))
                          (const_int 1))
                      (label_ref (match_operand 0 "" ""))
                      (pc)))
-   (set (match_operand:DI 2 "register_operand" "=1,*r,m,*c*l")
+   (set (match_operand:DI 2 "nonimmediate_operand" "=1,*r,m,*c*l")
        (plus:DI (match_dup 1)
                 (const_int -1)))
    (clobber (match_scratch:CC 3 "=X,&x,&x,&x"))
                          (const_int 1))
                      (pc)
                      (label_ref (match_operand 0 "" ""))))
-   (set (match_operand:DI 2 "register_operand" "=1,*r,m,*c*l")
+   (set (match_operand:DI 2 "nonimmediate_operand" "=1,*r,m,*c*l")
        (plus:DI (match_dup 1)
                 (const_int -1)))
    (clobber (match_scratch:CC 3 "=X,&x,&x,&x"))