]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR target/53272 (wrong condition-codes for strict-low-part destination and small...
authorHans-Peter Nilsson <hp@axis.com>
Tue, 8 May 2012 15:20:52 +0000 (15:20 +0000)
committerHans-Peter Nilsson <hp@gcc.gnu.org>
Tue, 8 May 2012 15:20:52 +0000 (15:20 +0000)
PR target/53272
* config/cris/cris.c (cris_normal_notice_update_cc): For TARGET_V32,
when a constant source operand matches an "I" constraint, the "no
CC0 change" applies to a register-destination only, not a
strict_low_part-destination.

From-SVN: r187283

gcc/ChangeLog
gcc/config/cris/cris.c

index b71e988e1003a5681e8e2c17f59d774f78db2a98..4867d5dc5a441548ae3e7639689afcd58e8560b7 100644 (file)
@@ -1,3 +1,11 @@
+2012-05-08  Hans-Peter Nilsson  <hp@axis.com>
+
+       PR target/53272
+       * config/cris/cris.c (cris_normal_notice_update_cc): For TARGET_V32,
+       when a constant source operand matches an "I" constraint, the "no
+       CC0 change" applies to a register-destination only, not a
+       strict_low_part-destination.
+
 2012-05-08  Richard Guenther  <rguenther@suse.de>
 
        * fold-const.c (fold_binary_loc): Fold (X * CST1) & CST2
index 40efd233ebfd3aa832d4629a89043ed872e3ecea..349f6019e3e9870c64a679e3a47ca12629f41ae5 100644 (file)
@@ -1695,6 +1695,7 @@ cris_normal_notice_update_cc (rtx exp, rtx insn)
                       && (REGNO (SET_SRC (exp))
                           > CRIS_LAST_GENERAL_REGISTER))
                   || (TARGET_V32
+                      && REG_P (SET_DEST (exp))
                       && satisfies_constraint_I (SET_SRC (exp))))
            {
              /* There's no CC0 change for this case.  Just check