]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
[ARM] Fix PR 65955: Do not take REGNO on non-REG operand in movcond_addsi
authorKyrylo Tkachov <kyrylo.tkachov@arm.com>
Thu, 14 May 2015 13:16:32 +0000 (13:16 +0000)
committerKyrylo Tkachov <ktkachov@gcc.gnu.org>
Thu, 14 May 2015 13:16:32 +0000 (13:16 +0000)
Backport from mainline
2015-05-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

PR target/65955
* config/arm/arm.md (movcond_addsi): Check that operands[2] is a
REG before taking its REGNO.

From-SVN: r223195

gcc/ChangeLog
gcc/config/arm/arm.md

index 96ec517a2ed8d6f8c6219ead5dfbf4187a379300..62dbdd26f7bc2d20c96c373b24964a64bb844672 100644 (file)
@@ -1,3 +1,12 @@
+2015-05-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+
+       Backport from mainline
+       2015-05-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+
+       PR target/65955
+       * config/arm/arm.md (movcond_addsi): Check that operands[2] is a
+       REG before taking its REGNO.
+
 2015-05-12  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
 
        * config/s390/2827.md: Split zEC12_simple into zEC12_simple_int
index 93b25e99c5b39d7bba8fdb3875ff87a96f5696c4..7ca816218a67dc424f12b9e2b9aec6d0bb088bdf 100644 (file)
     enum rtx_code rc = GET_CODE (operands[5]);
     operands[6] = gen_rtx_REG (mode, CC_REGNUM);
     gcc_assert (!(mode == CCFPmode || mode == CCFPEmode));
-    if (REGNO (operands[2]) != REGNO (operands[0]))
+    if (!REG_P (operands[2]) || REGNO (operands[2]) != REGNO (operands[0]))
       rc = reverse_condition (rc);
     else 
       {