summaryrefslogtreecommitdiff
path: root/patches/gcc/4.8.2/100-arm_expand_epilogue_apcs_frame-emit-blockage.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patches/gcc/4.8.2/100-arm_expand_epilogue_apcs_frame-emit-blockage.patch')
-rw-r--r--patches/gcc/4.8.2/100-arm_expand_epilogue_apcs_frame-emit-blockage.patch29
1 files changed, 29 insertions, 0 deletions
diff --git a/patches/gcc/4.8.2/100-arm_expand_epilogue_apcs_frame-emit-blockage.patch b/patches/gcc/4.8.2/100-arm_expand_epilogue_apcs_frame-emit-blockage.patch
new file mode 100644
index 0000000..333438d
--- /dev/null
+++ b/patches/gcc/4.8.2/100-arm_expand_epilogue_apcs_frame-emit-blockage.patch
@@ -0,0 +1,29 @@
+commit 9a228f68817f79bbd1d295b8e6fcaed25c47ee8f
+Author: ramana <ramana@138bc75d-0d04-0410-961f-82ee72b054a4>
+Date: Wed Oct 30 10:54:04 2013 +0000
+
+ Fix PR target/58854
+
+ 2013-10-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
+
+ PR target/58854
+ * config/arm/arm.c (arm_expand_epilogue_apcs_frame): Emit blockage.
+
+
+ git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@204203 138bc75d-0d04-0410-961f-82ee72b054a4
+
+[yann.morin.1998@free.fr: removed the patch to the Changelog, it does not
+ apply and we don't really need it; re-diff to avoid offsets]
+
+diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c
+index 212a4bc..23dfc0e 100644
+--- a/gcc/config/arm/arm.c
++++ b/gcc/config/arm/arm.c
+@@ -23555,6 +23555,7 @@ arm_expand_epilogue_apcs_frame (bool really_return)
+ num_regs = bit_count (saved_regs_mask);
+ if ((offsets->outgoing_args != (1 + num_regs)) || cfun->calls_alloca)
+ {
++ emit_insn (gen_blockage ());
+ /* Unwind the stack to just below the saved registers. */
+ emit_insn (gen_addsi3 (stack_pointer_rtx,
+ hard_frame_pointer_rtx,