rl78.c (rl78_alloc_physical_registers): Check for SET before extracting SET_SRC.
authorDJ Delorie <dj@redhat.com>
Fri, 10 Aug 2012 00:45:29 +0000 (20:45 -0400)
committerDJ Delorie <dj@gcc.gnu.org>
Fri, 10 Aug 2012 00:45:29 +0000 (20:45 -0400)
* config/rl78/rl78.c (rl78_alloc_physical_registers): Check for
SET before extracting SET_SRC.
(rl78_remove_unused_sets): Check for REG before extractnig REGNO.

From-SVN: r190278

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

index b73c69027fa98c27fb68e26a3de182e96abca291..e978842929e346babb495033a56fb44a6ad0e26c 100644 (file)
@@ -1,3 +1,9 @@
+2012-08-09  DJ Delorie  <dj@redhat.com>
+
+       * config/rl78/rl78.c (rl78_alloc_physical_registers): Check for
+       SET before extracting SET_SRC.
+       (rl78_remove_unused_sets): Check for REG before extractnig REGNO.
+
 2012-08-09  Oleg Endo  <olegendo@gcc.gnu.org>
 
        PR target/54089
index 0bb48beb2e4d56b67e90dde4bd2efabb86fa7472..990c1bb813922b9acc7626c15d76d9f53af2caa0 100644 (file)
@@ -2217,7 +2217,8 @@ rl78_alloc_physical_registers (void)
          && GET_CODE (PATTERN (insn)) != CALL)
          continue;
 
-      if (GET_CODE (SET_SRC (PATTERN (insn))) == ASM_OPERANDS)
+      if (GET_CODE (PATTERN (insn)) == SET
+         && GET_CODE (SET_SRC (PATTERN (insn))) == ASM_OPERANDS)
        continue;
 
       valloc_method = get_attr_valloc (insn);
@@ -2644,7 +2645,7 @@ rl78_remove_unused_sets (void)
 
       dest = SET_DEST (insn);
 
-      if (REGNO (dest) > 23)
+      if (GET_CODE (dest) != REG || REGNO (dest) > 23)
        continue;
 
       if (find_regno_note (insn, REG_UNUSED, REGNO (dest)))