summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChih-Hung Hsieh <chh@google.com>2015-07-27 10:10:44 -0700
committerKeith Mok <kmok@cyngn.com>2015-11-06 10:53:04 -0800
commit88f6ab1fcdb2fdc69a136501f37d4aea446011ae (patch)
tree71e427b2961692626355c8df08fc5a8ebbf49613
parente04680049b71bc86da439adf8e2aed067f7042a7 (diff)
downloadart-88f6ab1fcdb2fdc69a136501f37d4aea446011ae.zip
art-88f6ab1fcdb2fdc69a136501f37d4aea446011ae.tar.gz
art-88f6ab1fcdb2fdc69a136501f37d4aea446011ae.tar.bz2
ART: Fix arm32 assembly for Clang
Clang ignores .thumb_func and requires an explicit .thumb directive, as given by the ARM Unified Assembler Language. Conditionally add .thumb to thumb2 functions. Bug: 22762844 Change-Id: I08abdb5f4e0ba5135d4ed850ca3e284203f95a03
-rw-r--r--runtime/arch/arm/asm_support_arm.S5
1 files changed, 5 insertions, 0 deletions
diff --git a/runtime/arch/arm/asm_support_arm.S b/runtime/arch/arm/asm_support_arm.S
index 2af636e..049bd4f 100644
--- a/runtime/arch/arm/asm_support_arm.S
+++ b/runtime/arch/arm/asm_support_arm.S
@@ -50,6 +50,11 @@
// generated at END.
.macro DEF_ENTRY thumb_or_arm, name
\thumb_or_arm
+// Clang ignores .thumb_func and requires an explicit .thumb. Investigate whether we should still
+// carry around the .thumb_func.
+ .ifc \thumb_or_arm, .thumb_func
+ .thumb
+ .endif
.type \name, #function
.hidden \name // Hide this as a global symbol, so we do not incur plt calls.
.global \name