diff options
author | denisc <denisc@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-05-28 19:18:29 +0000 |
---|---|---|
committer | denisc <denisc@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-05-28 19:18:29 +0000 |
commit | ff390ce46b6a2ecca855e425b0af9d72a1dace4d (patch) | |
tree | ecc12a827471d53fa04c4dd50e247c3d3a8d0d57 /gcc/cselib.c | |
parent | abcfd3cb6d5cfb4087ed4edbe1d3a15b563a4396 (diff) | |
download | gcc-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/cselib.c')
-rw-r--r-- | gcc/cselib.c | 7 |
1 files changed, 5 insertions, 2 deletions
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); |