summaryrefslogtreecommitdiff
path: root/ldso/ldso/arm/aeabi_read_tp.S
diff options
context:
space:
mode:
authorChristophe Lyon <christophe.lyon@linaro.org>2018-10-29 14:34:25 +0000
committerWaldemar Brodkorb <wbx@openadk.org>2018-11-01 04:43:45 +0100
commitb2db04d0a81a9784d4a007be3bfef21aee207f8f (patch)
treeff417b99d916ba18fcde41df079830d103acdc11 /ldso/ldso/arm/aeabi_read_tp.S
parent1b41063f4019bd76a7e0f6b429fff5c5dc297fa6 (diff)
Add support for Thumb-only processors.
* ldso/ldso/arm/aeabi_read_tp.S: Add Thumb version. * ldso/ldso/arm/dl-startup.h: Do not force ARM encoding, adjust for Thumb. * ldso/ldso/arm/resolve.S: Force Thumb encoding on Thumb-only processors. * libc/sysdeps/linux/arm/crt1.S: Do not force ARM encoding, adjust for Thumb. Signed-off-by: Mickaël Guêné <mickael.guene@st.com> Signed-off-by: Christophe Lyon <christophe.lyon@st.com>
Diffstat (limited to 'ldso/ldso/arm/aeabi_read_tp.S')
-rw-r--r--ldso/ldso/arm/aeabi_read_tp.S14
1 files changed, 14 insertions, 0 deletions
diff --git a/ldso/ldso/arm/aeabi_read_tp.S b/ldso/ldso/arm/aeabi_read_tp.S
index 77e0d6ecc..5ab51257c 100644
--- a/ldso/ldso/arm/aeabi_read_tp.S
+++ b/ldso/ldso/arm/aeabi_read_tp.S
@@ -53,9 +53,23 @@
#else
.hidden __aeabi_read_tp
#endif
+#if !defined(__ARM_ARCH_ISA_ARM)
+ .thumb_func
+ .thumb
+ .syntax unified
+ ENTRY (__aeabi_read_tp)
+ push {r7}
+ mov r7, #0x0f0000
+ orr r7, r7, #6
+ svc #0
+ pop {r7}
+ bx lr
+#else
+ .arm
ENTRY (__aeabi_read_tp)
mov r0, #0xffff0fff
sub pc, r0, #31
+#endif
END (__aeabi_read_tp)
#endif /* __UCLIBC_HAS_THREADS_NATIVE__ */