[multiple changes]
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
This commit is contained in:
parent
8cfa1c3e37
commit
b150f4f320
|
@ -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
|
||||
|
|
|
@ -9635,142 +9635,142 @@
|
|||
|
||||
;; "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"
|
||||
|
@ -9780,32 +9780,32 @@
|
|||
;; 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"
|
||||
|
@ -13902,7 +13902,7 @@
|
|||
(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"))
|
||||
|
@ -13926,7 +13926,7 @@
|
|||
(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"))
|
||||
|
@ -13950,7 +13950,7 @@
|
|||
(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"))
|
||||
|
@ -13974,7 +13974,7 @@
|
|||
(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"))
|
||||
|
@ -14000,7 +14000,7 @@
|
|||
(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"))
|
||||
|
@ -14024,7 +14024,7 @@
|
|||
(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"))
|
||||
|
@ -14048,7 +14048,7 @@
|
|||
(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"))
|
||||
|
@ -14072,7 +14072,7 @@
|
|||
(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"))
|
||||
|
@ -14098,7 +14098,7 @@
|
|||
(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"))
|
||||
|
@ -14122,7 +14122,7 @@
|
|||
(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"))
|
||||
|
@ -14146,7 +14146,7 @@
|
|||
(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"))
|
||||
|
@ -14170,7 +14170,7 @@
|
|||
(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"))
|
||||
|
|
Loading…
Reference in New Issue