]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
rl78.c (rl78_alloc_address_registers_macax): Verify op is a REG before checking REGNO.
authorDJ Delorie <dj@redhat.com>
Wed, 16 Oct 2013 22:55:34 +0000 (18:55 -0400)
committerDJ Delorie <dj@gcc.gnu.org>
Wed, 16 Oct 2013 22:55:34 +0000 (18:55 -0400)
* config/rl78/rl78.c (rl78_alloc_address_registers_macax): Verify
op is a REG before checking REGNO.
(rl78_alloc_physical_registers): Verify pattern is a SET before
checking SET_SRC.

From-SVN: r203733

gcc/ChangeLog
gcc/config/rl78/rl78.c

index 2b82bd5470beaac704d5c39d89c23fcdb37313ae..83541b2ce8026d5e4030881b5af3b7462722b475 100644 (file)
@@ -1,3 +1,10 @@
+2013-10-16  DJ Delorie  <dj@redhat.com>
+
+       * config/rl78/rl78.c (rl78_alloc_address_registers_macax): Verify
+       op is a REG before checking REGNO.
+       (rl78_alloc_physical_registers): Verify pattern is a SET before
+       checking SET_SRC.
+
 2013-10-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
 
        * gcc/config/rs6000/vector.md (vec_unpacks_hi_v4sf): Correct for
index 0e385962ab11ba8ae7db67049f3822e7ea252bfb..995f3b1754da6c2e3635e4f34f32591105811328 100644 (file)
@@ -3050,7 +3050,8 @@ rl78_alloc_address_registers_macax (rtx insn)
              OP (op) = transcode_memory_rtx (OP (op), HL, insn);
              if (op == 2
                  && MEM_P (OP (op))
-                 && (REGNO (XEXP (OP (op), 0)) == SP_REG
+                 && ((GET_CODE (XEXP (OP (op), 0)) == REG
+                      && REGNO (XEXP (OP (op), 0)) == SP_REG)
                      || (GET_CODE (XEXP (OP (op), 0)) == PLUS
                          && REGNO (XEXP (XEXP (OP (op), 0), 0)) == SP_REG)))
                {
@@ -3140,7 +3141,8 @@ rl78_alloc_physical_registers (void)
       if (GET_CODE (pattern) != SET
          && GET_CODE (pattern) != CALL)
        continue;
-      if (GET_CODE (SET_SRC (pattern)) == ASM_OPERANDS)
+      if (GET_CODE (pattern) == SET
+         && GET_CODE (SET_SRC (pattern)) == ASM_OPERANDS)
        continue;
 
       valloc_method = get_attr_valloc (insn);