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
This commit is contained in:
parent
92b4d64cd4
commit
e98925f693
4 changed files with 25 additions and 0 deletions
|
@ -1,3 +1,9 @@
|
|||
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)));
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
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
|
||||
|
|
12
gcc/testsuite/gcc.target/arm/stack-red-zone.c
Normal file
12
gcc/testsuite/gcc.target/arm/stack-red-zone.c
Normal file
|
@ -0,0 +1,12 @@
|
|||
/* 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;
|
||||
}
|
Loading…
Add table
Reference in a new issue