sparc.md (cmp_cc_arith_op_set): Don't use match_dup on the entire operator...
authorRichard Henderson <rth@gcc.gnu.org>
Tue, 13 Feb 2001 08:46:52 +0000 (00:46 -0800)
committerRichard Henderson <rth@gcc.gnu.org>
Tue, 13 Feb 2001 08:46:52 +0000 (00:46 -0800)
        * sparc.md (cmp_cc_arith_op_set): Don't use match_dup on the
        entire operator; replicate that and match_dup the operands.
        (cmp_ccx_arith_op_set): Likewise.
        (cmp_cc_arith_op_not_set): Likewise.
        (cmp_ccx_arith_op_not_set): Likewise.

From-SVN: r39620

gcc/ChangeLog
gcc/config/sparc/sparc.md

index 8761c12ec50160e03518c7734f7966e1ac0da6ed..7e5f0f5147d6ce9c6d50da6d1791d70ecf34196c 100644 (file)
@@ -1,3 +1,11 @@
+2001-02-13  Richard Henderson  <rth@redhat.com>
+
+       * sparc.md (cmp_cc_arith_op_set): Don't use match_dup on the
+       entire operator; replicate that and match_dup the operands.
+       (cmp_ccx_arith_op_set): Likewise.
+       (cmp_cc_arith_op_not_set): Likewise.
+       (cmp_ccx_arith_op_not_set): Likewise.
+
 2001-02-13  Alexandre Oliva  <aoliva@redhat.com>
 
        * explow.c (trunc_int_for_mode): Sign-extend value to mode.
@@ -140,8 +148,8 @@ Fri Feb  9 15:05:27 2001  Christopher Faylor <cgf@cygnus.com>
 
 2001-02-09  Neil Booth  <neil@daikokuya.demon.co.uk>
 
-        * gcc.c (cpp_options): Delete .d files on error.  Don't delete
-        .o files when using the -M options.
+       * gcc.c (cpp_options): Delete .d files on error.  Don't delete
+       .o files when using the -M options.
 
 2001-02-08  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
            David Edelsohn  <edelsohn@gnu.org>
index 861aee2c866adc211d41a2aa49cb2621f26ee5ec..abfad793115c782c727eb26425e7f7c991aa4225 100644 (file)
                             (match_operand:SI 2 "arith_operand" "rI")])
         (const_int 0)))
    (set (match_operand:SI 0 "register_operand" "=r")
-       (match_dup 3))]
-  ""
+       (match_operator:SI 4 "cc_arithop" [(match_dup 1) (match_dup 2)]))]
+  "GET_CODE (operands[3]) == GET_CODE (operands[4])"
   "%A3cc\\t%1, %2, %0"
   [(set_attr "type" "compare")
    (set_attr "length" "1")])
                             (match_operand:DI 2 "arith_double_operand" "rHI")])
         (const_int 0)))
    (set (match_operand:DI 0 "register_operand" "=r")
-       (match_dup 3))]
-  "TARGET_ARCH64"
+       (match_operator:DI 4 "cc_arithop" [(match_dup 1) (match_dup 2)]))]
+  "TARGET_ARCH64 && GET_CODE (operands[3]) == GET_CODE (operands[4])"
   "%A3cc\\t%1, %2, %0"
   [(set_attr "type" "compare")
    (set_attr "length" "1")])
                             (match_operand:SI 2 "reg_or_0_operand" "rJ")])
         (const_int 0)))
    (set (match_operand:SI 0 "register_operand" "=r")
-       (match_dup 3))]
-  ""
+       (match_operator:SI 4 "cc_arithopn"
+                           [(not:SI (match_dup 1)) (match_dup 2)]))]
+  "GET_CODE (operands[3]) == GET_CODE (operands[4])"
   "%B3cc\\t%r2, %1, %0"
   [(set_attr "type" "compare")
    (set_attr "length" "1")])
                             (match_operand:DI 2 "reg_or_0_operand" "rJ")])
         (const_int 0)))
    (set (match_operand:DI 0 "register_operand" "=r")
-       (match_dup 3))]
-  "TARGET_ARCH64"
+       (match_operator:DI 4 "cc_arithopn"
+                           [(not:DI (match_dup 1)) (match_dup 2)]))]
+  "TARGET_ARCH64 && GET_CODE (operands[3]) == GET_CODE (operands[4])"
   "%B3cc\\t%r2, %1, %0"
   [(set_attr "type" "compare")
    (set_attr "length" "1")])