aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorDJ Delorie <dj@redhat.com>2012-08-09 20:45:29 -0400
committerDJ Delorie <dj@gcc.gnu.org>2012-08-09 20:45:29 -0400
commit1c6b1021266dc25184a1bcb381a255debe57dd68 (patch)
tree425717510a60f82cd8827e87b1a2e662e4741d27 /gcc
parent23459cbecdf506d5b96981a4dbfdb3bcda051689 (diff)
downloadgcc-1c6b1021266dc25184a1bcb381a255debe57dd68.zip
gcc-1c6b1021266dc25184a1bcb381a255debe57dd68.tar.gz
gcc-1c6b1021266dc25184a1bcb381a255debe57dd68.tar.bz2
rl78.c (rl78_alloc_physical_registers): Check for SET before extracting SET_SRC.
* 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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/rl78/rl78.c5
2 files changed, 9 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index b73c690..e978842 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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
diff --git a/gcc/config/rl78/rl78.c b/gcc/config/rl78/rl78.c
index 0bb48be..990c1bb 100644
--- a/gcc/config/rl78/rl78.c
+++ b/gcc/config/rl78/rl78.c
@@ -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)))