aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenis Chertykov <denisc@overta.ru>2003-05-28 19:18:29 +0000
committerDenis Chertykov <denisc@gcc.gnu.org>2003-05-28 23:18:29 +0400
commit291aac59a5c1cf12e32d59d194ff85b58b6910c7 (patch)
treeecc12a827471d53fa04c4dd50e247c3d3a8d0d57
parentafc2b62daeeb6b93bfc08fcd5f6a8857841ac6d7 (diff)
downloadgcc-291aac59a5c1cf12e32d59d194ff85b58b6910c7.zip
gcc-291aac59a5c1cf12e32d59d194ff85b58b6910c7.tar.gz
gcc-291aac59a5c1cf12e32d59d194ff85b58b6910c7.tar.bz2
cselib.c (cselib_invalidate_regno): Abort if hardreg have a VOIDmode.
* 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. From-SVN: r67210
-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 21c12d1..a3be29d 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 cf3394f..3ea7c23 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);