gcc/reload pass: don't eliminate %fp if (%sp)+ is present.

For instructions such as "MOVE (%sp)+, x(%sp)", GCC gets the offset wrong.
This commit is contained in:
Wolfgang Thaller 2014-09-23 23:29:54 +02:00
parent cf2a08b7de
commit 1de00c3f09

View File

@ -3038,6 +3038,8 @@ elimination_effects (rtx x, enum machine_mode mem_mode)
else else
ep->can_eliminate = 0; ep->can_eliminate = 0;
} }
if (code == POST_DEC || code == POST_INC)
ep->can_eliminate = 0;
} }
/* These two aren't unary operators. */ /* These two aren't unary operators. */