http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38644
--- Comment #56 from Jiangning Liu <jiangning.liu at arm dot com> 2011-10-31 07:48:25 UTC --- (In reply to comment #54) > I tested with GCC 4.6.2 and the patch provided by Mikael Pettersson. It works > for -march=armv4t and -march=armv5t, but not for -march=armv5te: > Sebastian, Actually you may try this, diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c index aed748c..8269c1a 100755 --- a/gcc/config/arm/arm.c +++ b/gcc/config/arm/arm.c @@ -22273,6 +22273,8 @@ thumb1_expand_epilogue (void) gcc_assert (amount >= 0); if (amount) { + emit_insn (gen_blockage ()); + if (amount < 512) emit_insn (gen_addsi3 (stack_pointer_rtx, stack_pointer_rtx, GEN_INT (amount))); Thanks, -Jiangning