cselib.c (cselib_invalidate_regno): Abort if hardreg have a VOIDmode.
authorDenis Chertykov <denisc@overta.ru>
Wed, 28 May 2003 19:18:29 +0000 (19:18 +0000)
committerDenis Chertykov <denisc@gcc.gnu.org>
Wed, 28 May 2003 19:18:29 +0000 (23:18 +0400)
* 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

gcc/ChangeLog
gcc/cselib.c

index 21c12d1e7841574f96b1b8b33aaef8a1ea9de320..a3be29d3842659bd67951da46dd8eba2b0473ca5 100644 (file)
@@ -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
index cf3394f237a290249133de5b1d2db5a92dc4d85b..3ea7c236abdb126b6d5f0ce2801f863815d61f4a 100644 (file)
@@ -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);