PowerPC TLS patterns

David Edelsohn dje@watson.ibm.com
Tue Mar 30 17:45:00 GMT 2004


[Try again spelled correctly.]

	While fixing the rs6000.md doloop patterns, I noticed that the tls
patterns all used "register_operand" instead of "gpc_reg_operand"
predicates, although the constraints are "r" and "b".  Was this
intentional or an oversight.  I plan to change the predicates to
gpc_reg_operand unless there is a reason to keep register_operand.

Thanks, David


Index: rs6000.md
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/rs6000/rs6000.md,v
retrieving revision 1.300
diff -c -p -r1.300 rs6000.md
*** rs6000.md	25 Mar 2004 17:43:20 -0000	1.300
--- rs6000.md	30 Mar 2004 17:27:05 -0000
***************
*** 9635,9776 ****
  
  ;; "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")
  		    (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")
  		    (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")]
  		   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")]
  		   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")
  		    (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")
  		    (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")
  		    (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")
  		    (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")
  		    (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")
  		    (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")
  		    (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")
  		    (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")
  		    (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")
  		    (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")
  		    (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")
  		    (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")
  		    (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")
  		    (match_operand:DI 2 "rs6000_tls_symbol_ref" "")]
  		   UNSPEC_TLSTPRELLO))]
    "HAVE_AS_TLS && TARGET_64BIT"
--- 9635,9776 ----
  
  ;; "b" output constraint here and on tls_ld to support tls linker optimization.
  (define_insn "tls_gd_32"
!   [(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 "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 "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 "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 "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 "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 "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 "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 "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 "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 "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 "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 "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 "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 "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 "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 "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 "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,9811 ****
  ;; 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")
  		    (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")
  		    (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")
  		    (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")
  		    (match_operand:DI 2 "rs6000_tls_symbol_ref" "")]
  		   UNSPEC_TLSTLS))]
    "HAVE_AS_TLS && TARGET_64BIT"
--- 9780,9811 ----
  ;; 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 "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 "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 "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 "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,13908 ****
  			  (const_int 1))
  		      (label_ref (match_operand 0 "" ""))
  		      (pc)))
!    (set (match_operand:SI 2 "register_operand" "=1,*r,m,*q*c*l")
  	(plus:SI (match_dup 1)
  		 (const_int -1)))
     (clobber (match_scratch:CC 3 "=X,&x,&x,&x"))
--- 13902,13908 ----
  			  (const_int 1))
  		      (label_ref (match_operand 0 "" ""))
  		      (pc)))
!    (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,13932 ****
  			  (const_int 1))
  		      (pc)
  		      (label_ref (match_operand 0 "" ""))))
!    (set (match_operand:SI 2 "register_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,13932 ----
  			  (const_int 1))
  		      (pc)
  		      (label_ref (match_operand 0 "" ""))))
!    (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,13956 ****
  			  (const_int 1))
  		      (label_ref (match_operand 0 "" ""))
  		      (pc)))
!    (set (match_operand:DI 2 "register_operand" "=1,*r,m,*c*l")
  	(plus:DI (match_dup 1)
  		 (const_int -1)))
     (clobber (match_scratch:CC 3 "=X,&x,&x,&x"))
--- 13950,13956 ----
  			  (const_int 1))
  		      (label_ref (match_operand 0 "" ""))
  		      (pc)))
!    (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,13980 ****
  			  (const_int 1))
  		      (pc)
  		      (label_ref (match_operand 0 "" ""))))
!    (set (match_operand:DI 2 "register_operand" "=1,*r,m,*c*l")
  	(plus:DI (match_dup 1)
  		 (const_int -1)))
     (clobber (match_scratch:CC 3 "=X,&x,&x,&x"))
--- 13974,13980 ----
  			  (const_int 1))
  		      (pc)
  		      (label_ref (match_operand 0 "" ""))))
!    (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,14006 ****
  			  (const_int 0))
  		      (label_ref (match_operand 0 "" ""))
  		      (pc)))
!    (set (match_operand:SI 2 "register_operand" "=1,*r,m,*q*c*l")
  	(plus:SI (match_dup 1)
  		 (const_int -1)))
     (clobber (match_scratch:CC 3 "=X,&x,&x,&x"))
--- 14000,14006 ----
  			  (const_int 0))
  		      (label_ref (match_operand 0 "" ""))
  		      (pc)))
!    (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,14030 ****
  			  (const_int 0))
  		      (pc)
  		      (label_ref (match_operand 0 "" ""))))
!    (set (match_operand:SI 2 "register_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,14030 ----
  			  (const_int 0))
  		      (pc)
  		      (label_ref (match_operand 0 "" ""))))
!    (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,14054 ****
  			  (const_int 0))
  		      (label_ref (match_operand 0 "" ""))
  		      (pc)))
!    (set (match_operand:DI 2 "register_operand" "=1,*r,m,*c*l")
  	(plus:DI (match_dup 1)
  		 (const_int -1)))
     (clobber (match_scratch:CC 3 "=X,&x,&x,&x"))
--- 14048,14054 ----
  			  (const_int 0))
  		      (label_ref (match_operand 0 "" ""))
  		      (pc)))
!    (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,14078 ****
  			  (const_int 0))
  		      (pc)
  		      (label_ref (match_operand 0 "" ""))))
!    (set (match_operand:DI 2 "register_operand" "=1,*r,m,*c*l")
  	(plus:DI (match_dup 1)
  		 (const_int -1)))
     (clobber (match_scratch:CC 3 "=X,&x,&x,&x"))
--- 14072,14078 ----
  			  (const_int 0))
  		      (pc)
  		      (label_ref (match_operand 0 "" ""))))
!    (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,14104 ****
  			  (const_int 1))
  		      (label_ref (match_operand 0 "" ""))
  		      (pc)))
!    (set (match_operand:SI 2 "register_operand" "=1,*r,m,*q*c*l")
  	(plus:SI (match_dup 1)
  		 (const_int -1)))
     (clobber (match_scratch:CC 3 "=X,&x,&x,&x"))
--- 14098,14104 ----
  			  (const_int 1))
  		      (label_ref (match_operand 0 "" ""))
  		      (pc)))
!    (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,14128 ****
  			  (const_int 1))
  		      (pc)
  		      (label_ref (match_operand 0 "" ""))))
!    (set (match_operand:SI 2 "register_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,14128 ----
  			  (const_int 1))
  		      (pc)
  		      (label_ref (match_operand 0 "" ""))))
!    (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,14152 ****
  			  (const_int 1))
  		      (label_ref (match_operand 0 "" ""))
  		      (pc)))
!    (set (match_operand:DI 2 "register_operand" "=1,*r,m,*c*l")
  	(plus:DI (match_dup 1)
  		 (const_int -1)))
     (clobber (match_scratch:CC 3 "=X,&x,&x,&x"))
--- 14146,14152 ----
  			  (const_int 1))
  		      (label_ref (match_operand 0 "" ""))
  		      (pc)))
!    (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,14176 ****
  			  (const_int 1))
  		      (pc)
  		      (label_ref (match_operand 0 "" ""))))
!    (set (match_operand:DI 2 "register_operand" "=1,*r,m,*c*l")
  	(plus:DI (match_dup 1)
  		 (const_int -1)))
     (clobber (match_scratch:CC 3 "=X,&x,&x,&x"))
--- 14170,14176 ----
  			  (const_int 1))
  		      (pc)
  		      (label_ref (match_operand 0 "" ""))))
!    (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"))



More information about the Gcc-patches mailing list