aboutsummaryrefslogtreecommitdiffstats
path: root/meta-oe/recipes-core/llvm/llvm2.8/0019-issue6065.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-oe/recipes-core/llvm/llvm2.8/0019-issue6065.patch')
-rw-r--r--meta-oe/recipes-core/llvm/llvm2.8/0019-issue6065.patch20
1 files changed, 20 insertions, 0 deletions
diff --git a/meta-oe/recipes-core/llvm/llvm2.8/0019-issue6065.patch b/meta-oe/recipes-core/llvm/llvm2.8/0019-issue6065.patch
new file mode 100644
index 0000000000..a7f7bbe359
--- /dev/null
+++ b/meta-oe/recipes-core/llvm/llvm2.8/0019-issue6065.patch
@@ -0,0 +1,20 @@
+---
+ ARMJITInfo.cpp | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+--- a/lib/Target/ARM/ARMJITInfo.cpp
++++ b/lib/Target/ARM/ARMJITInfo.cpp
+@@ -99,7 +99,13 @@
+ // The above twiddling of the saved return addresses allows us to
+ // deallocate everything, including the LR the stub saved, all in one
+ // pop instruction.
++#ifndef __thumb__
+ "ldmia sp!, {r0, r1, r2, r3, lr, pc}\n"
++#else
++ // thumb dont allow lr and pc to be poped in the same instruction.
++ "pop {r0, r1, r2, r3, lr}\n"
++ "pop {pc}\n"
++#endif
+ );
+ #else // Not an ARM host
+ void ARMCompilationCallback() {