summaryrefslogtreecommitdiff
path: root/src/thread/arm
diff options
context:
space:
mode:
Diffstat (limited to 'src/thread/arm')
-rw-r--r--src/thread/arm/__aeabi_read_tp.s10
-rw-r--r--src/thread/arm/__aeabi_read_tp_c.c8
2 files changed, 6 insertions, 12 deletions
diff --git a/src/thread/arm/__aeabi_read_tp.s b/src/thread/arm/__aeabi_read_tp.s
index 9d0cd311..2585620c 100644
--- a/src/thread/arm/__aeabi_read_tp.s
+++ b/src/thread/arm/__aeabi_read_tp.s
@@ -2,7 +2,9 @@
.global __aeabi_read_tp
.type __aeabi_read_tp,%function
__aeabi_read_tp:
- push {r1,r2,r3,lr}
- bl __aeabi_read_tp_c
- pop {r1,r2,r3,lr}
- bx lr
+ ldr r0,1f
+ add r0,r0,pc
+ ldr r0,[r0]
+2: bx r0
+ .align 2
+1: .word __a_gettp_ptr - 2b
diff --git a/src/thread/arm/__aeabi_read_tp_c.c b/src/thread/arm/__aeabi_read_tp_c.c
deleted file mode 100644
index 0c56d613..00000000
--- a/src/thread/arm/__aeabi_read_tp_c.c
+++ /dev/null
@@ -1,8 +0,0 @@
-#include "pthread_impl.h"
-#include <stdint.h>
-
-__attribute__((__visibility__("hidden")))
-void *__aeabi_read_tp_c(void)
-{
- return TP_ADJ(__pthread_self());
-}