diff options
author | Jim Wilson <wilson@cygnus.com> | 1998-10-22 22:49:04 +0000 |
---|---|---|
committer | Jim Wilson <wilson@gcc.gnu.org> | 1998-10-22 15:49:04 -0700 |
commit | 04bbb0c54c7907baf626fb576536d82a78f7f43d (patch) | |
tree | daa31ef09a9bc0f660f5229242c0f900410ad4c2 /gcc/reload1.c | |
parent | 9324411a50ae8a1dd51eac8c93ff251ba063915f (diff) | |
download | gcc-04bbb0c54c7907baf626fb576536d82a78f7f43d.zip gcc-04bbb0c54c7907baf626fb576536d82a78f7f43d.tar.gz gcc-04bbb0c54c7907baf626fb576536d82a78f7f43d.tar.bz2 |
Fix m68k-aout build failure. Invalid insn abort while compiling newlib.
* reload1.c (reload_as_needed): When rewrite POST_INC, verify
reg_reloaded_contents matches incremented pseudo.
From-SVN: r23235
Diffstat (limited to 'gcc/reload1.c')
-rw-r--r-- | gcc/reload1.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/gcc/reload1.c b/gcc/reload1.c index 74d5ed4..a8cc173 100644 --- a/gcc/reload1.c +++ b/gcc/reload1.c @@ -4478,7 +4478,12 @@ reload_as_needed (live_known) or we can't use the reload register for inheritance. */ if ((code == POST_INC || code == POST_DEC) && TEST_HARD_REG_BIT (reg_reloaded_valid, - REGNO (reload_reg_rtx[i]))) + REGNO (reload_reg_rtx[i])) + /* Make sure it is the inc/dec pseudo, and not + some other (e.g. output operand) pseudo. */ + && (reg_reloaded_contents[REGNO (reload_reg_rtx[i])] + == REGNO (XEXP (in_reg, 0)))) + { rtx reload_reg = reload_reg_rtx[i]; enum machine_mode mode = GET_MODE (reload_reg); |