summaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authordenisc <denisc@138bc75d-0d04-0410-961f-82ee72b054a4>2003-05-28 19:18:29 +0000
committerdenisc <denisc@138bc75d-0d04-0410-961f-82ee72b054a4>2003-05-28 19:18:29 +0000
commitff390ce46b6a2ecca855e425b0af9d72a1dace4d (patch)
treeecc12a827471d53fa04c4dd50e247c3d3a8d0d57 /gcc
parentabcfd3cb6d5cfb4087ed4edbe1d3a15b563a4396 (diff)
downloadgcc-ff390ce46b6a2ecca855e425b0af9d72a1dace4d.tar.gz
* cselib.c (cselib_invalidate_regno): Abort if hardreg have a
VOIDmode. * cselib.c (cselib_process_insn): Pass reg_raw_mode for hardreg in call of cselib_invalidate_regno. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@67210 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/cselib.c7
2 files changed, 12 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 21c12d1e784..a3be29d3842 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2003-05-27 Denis Chertykov <denisc@overta.ru>
+
+ * cselib.c (cselib_invalidate_regno): Abort if hardreg have a
+ VOIDmode.
+ * cselib.c (cselib_process_insn): Pass reg_raw_mode for hardreg in
+ call of cselib_invalidate_regno.
+
2003-05-28 Daniel Jacobowitz <drow@mvista.com>
* config/mips/linux.h (LIB_SPEC): Add missing -lc and correct
diff --git a/gcc/cselib.c b/gcc/cselib.c
index cf3394f237a..3ea7c236abd 100644
--- a/gcc/cselib.c
+++ b/gcc/cselib.c
@@ -1019,8 +1019,11 @@ cselib_invalidate_regno (regno, mode)
pseudos, only REGNO is affected. For hard regs, we must take MODE
into account, and we must also invalidate lower register numbers
if they contain values that overlap REGNO. */
- if (regno < FIRST_PSEUDO_REGISTER && mode != VOIDmode)
+ if (regno < FIRST_PSEUDO_REGISTER)
{
+ if (mode == VOIDmode)
+ abort ();
+
if (regno < max_value_regs)
i = 0;
else
@@ -1427,7 +1430,7 @@ cselib_process_insn (insn)
{
for (i = 0; i < FIRST_PSEUDO_REGISTER; i++)
if (call_used_regs[i])
- cselib_invalidate_regno (i, VOIDmode);
+ cselib_invalidate_regno (i, reg_raw_mode[i]);
if (! CONST_OR_PURE_CALL_P (insn))
cselib_invalidate_mem (callmem);