aboutsummaryrefslogtreecommitdiff
path: root/gcc/reload1.c
diff options
context:
space:
mode:
authorJim Wilson <wilson@cygnus.com>1998-10-22 22:49:04 +0000
committerJim Wilson <wilson@gcc.gnu.org>1998-10-22 15:49:04 -0700
commit04bbb0c54c7907baf626fb576536d82a78f7f43d (patch)
treedaa31ef09a9bc0f660f5229242c0f900410ad4c2 /gcc/reload1.c
parent9324411a50ae8a1dd51eac8c93ff251ba063915f (diff)
downloadgcc-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.c7
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);