Commit e98925f6 by Jiangning Liu Committed by Joey Ye

re PR rtl-optimization/38644 (Optimization flag -O1 -fschedule-insns2 causes wrong code)

2011-11-04  Jiangning Liu  <jiangning.liu@arm.com>

	PR rtl-optimization/38644
	* config/arm/arm.c (thumb1_expand_epilogue): Add memory barrier
	for epilogue having stack adjustment.

	testcase:
	* gcc.target/arm/stack-red-zone.c: New.

From-SVN: r180964
parent 92b4d64c
2011-11-04 Jiangning Liu <jiangning.liu@arm.com>
PR rtl-optimization/38644
* config/arm/arm.c (thumb1_expand_epilogue): Add memory barrier
for epilogue having stack adjustment.
2011-11-04 Georg-Johann Lay <avr@gjlay.de>
PR target/50931
......@@ -22216,6 +22216,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)));
......
2011-11-04 Jiangning Liu <jiangning.liu@arm.com>
PR rtl-optimization/38644
* gcc.target/arm/stack-red-zone.c: New.
2011-11-04 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/48420
......
/* No stack red zone. PR38644. */
/* { dg-options "-mthumb -O2" } */
/* { dg-final { scan-assembler "ldrb\[^\n\]*\\n\[\t \]*add\[\t \]*sp" } } */
extern int doStreamReadBlock (int *, char *, int size, int);
char readStream (int *s)
{
char c = 0;
doStreamReadBlock (s, &c, 1, *s);
return c;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment