.align 4
DECLARE_GLOBAL_SYMBOL mono_fallback_get_tls_key
- push {lr}
#if defined(__linux__) && defined(HAVE_KW_THREAD) && defined(__ARM_EABI__)
+ push {lr}
mov r1, r0
bl __aeabi_read_tp
ldr r0, [r0, r1]
+ pop {pc}
#elif defined(TARGET_IOS)
+ push {r7, lr}
+ mov r7, sp
bl _pthread_getspecific
+ pop {r7, pc}
#elif defined(TARGET_ANDROID)
+ push {lr}
bl pthread_getspecific
-#endif
pop {pc}
+#endif
/*
* The following thunks set the value corresponding to the key/offset
* passed in R0. These thunks don't do jumps to external code so execution
.align 4
DECLARE_GLOBAL_SYMBOL mono_fallback_set_tls_key
- push {lr}
#if defined(__linux__) && defined(HAVE_KW_THREAD) && defined(__ARM_EABI__)
+ push {lr}
mov r2, r0
bl __aeabi_read_tp
str r1, [r0, r2]
+ pop {pc}
#elif defined(TARGET_IOS)
+ push {r7, lr}
+ mov r7, sp
bl _pthread_setspecific
+ pop {r7, pc}
#elif defined(TARGET_ANDROID)
+ push {lr}
bl pthread_setspecific
-#endif
pop {pc}
+#endif
/* Additional tls getters/setters */