]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
backport: re PR rtl-optimization/38644 (Optimization flag -O1 -fschedule-insns2 cause...
authorRamana Radhakrishnan <ramana.radhakrishnan@linaro.org>
Mon, 9 Jan 2012 16:55:16 +0000 (16:55 +0000)
committerRamana Radhakrishnan <ramana@gcc.gnu.org>
Mon, 9 Jan 2012 16:55:16 +0000 (16:55 +0000)
2012-01-09  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>

Backport from mainline
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.

2012-01-09  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>

Backport from mainline:
2011-11-04  Jiangning Liu  <jiangning.liu@arm.com>

PR rtl-optimization/38644
* gcc.target/arm/stack-red-zone.c: New.

From-SVN: r183019

gcc/ChangeLog
gcc/config/arm/arm.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/arm/stack-red-zone.c [new file with mode: 0644]

index e4cb8ccded14bc9b1559130d8ba70b56e5b20e7f..ca61c0ba976eaa011c1b140b2d9115a628e465a9 100644 (file)
@@ -1,3 +1,12 @@
+2012-01-09  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
+
+       Backport from mainline
+       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.
+
 2012-01-09  Eric Botcazou  <ebotcazou@adacore.com>
 
        PR ada/41929
index 0683fc63419104b849ca3dd48ae7ad6370c3d487..d7316524d9e96d9ef5193eb9fb5e9558844151b7 100644 (file)
@@ -20867,6 +20867,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)));
index 531c585ab682bafa324ffe2cb816fc6a8386e9fa..84faeb2155ebc1d4f55d4e0ac4fdb2d2e240408c 100644 (file)
@@ -1,3 +1,11 @@
+2012-01-09  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
+
+       Backport from mainline:
+       2011-11-04  Jiangning Liu  <jiangning.liu@arm.com>
+
+       PR rtl-optimization/38644
+       * gcc.target/arm/stack-red-zone.c: New.
+
 2012-01-09  Andrew Stubbs  <ams@codesourcery.com>
 
        Backport from mainline:
diff --git a/gcc/testsuite/gcc.target/arm/stack-red-zone.c b/gcc/testsuite/gcc.target/arm/stack-red-zone.c
new file mode 100644 (file)
index 0000000..b9f0f99
--- /dev/null
@@ -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;
+}