diff options
Diffstat (limited to 'ports/sysdeps/unix/sysv/linux/arm/aeabi_read_tp.S')
-rw-r--r-- | ports/sysdeps/unix/sysv/linux/arm/aeabi_read_tp.S | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/ports/sysdeps/unix/sysv/linux/arm/aeabi_read_tp.S b/ports/sysdeps/unix/sysv/linux/arm/aeabi_read_tp.S index c4ddbc69ff..21e322986a 100644 --- a/ports/sysdeps/unix/sysv/linux/arm/aeabi_read_tp.S +++ b/ports/sysdeps/unix/sysv/linux/arm/aeabi_read_tp.S @@ -41,6 +41,15 @@ .hidden __aeabi_read_tp ENTRY (__aeabi_read_tp) +#ifdef ARCH_HAS_HARD_TP + mrc p15, 0, r0, c13, c0, 3 + bx lr +#elif defined(__thumb2__) + movw r0, #0x0fe0 + movt r0, #0xffff + bx r0 +#else mov r0, #0xffff0fff sub pc, r0, #31 +#endif END (__aeabi_read_tp) |