svn commit: r239271 - head/lib/libc/arm/gen
Oleksandr Tymoshenko
gonzo at FreeBSD.org
Wed Aug 15 03:09:01 UTC 2012
Author: gonzo
Date: Wed Aug 15 03:09:00 2012
New Revision: 239271
URL: http://svn.freebsd.org/changeset/base/239271
Log:
Merging of projects/armv6, part 2
Handle TLS for ARMv6 and ARMv7
Modified:
head/lib/libc/arm/gen/__aeabi_read_tp.S
head/lib/libc/arm/gen/_set_tp.c
Modified: head/lib/libc/arm/gen/__aeabi_read_tp.S
==============================================================================
--- head/lib/libc/arm/gen/__aeabi_read_tp.S Wed Aug 15 03:08:29 2012 (r239270)
+++ head/lib/libc/arm/gen/__aeabi_read_tp.S Wed Aug 15 03:09:00 2012 (r239271)
@@ -31,10 +31,16 @@ __FBSDID("$FreeBSD$");
#include <machine/sysarch.h>
ENTRY(__aeabi_read_tp)
+#ifdef ARM_TP_ADDRESS
ldr r0, .Larm_tp_address
ldr r0, [r0]
+#else
+ mrc p15, 0, r0, c13, c0, 3
+#endif
RET
+#ifdef ARM_TP_ADDRESS
.Larm_tp_address:
.word ARM_TP_ADDRESS
+#endif
Modified: head/lib/libc/arm/gen/_set_tp.c
==============================================================================
--- head/lib/libc/arm/gen/_set_tp.c Wed Aug 15 03:08:29 2012 (r239270)
+++ head/lib/libc/arm/gen/_set_tp.c Wed Aug 15 03:09:00 2012 (r239271)
@@ -35,5 +35,9 @@ void
_set_tp(void *tp)
{
+#ifdef ARM_TP_ADDRESS
*((struct tcb **)ARM_TP_ADDRESS) = tp;
+#else
+ sysarch(ARM_SET_TP, tp);
+#endif
}
More information about the svn-src-head
mailing list