Module Name:    src
Committed By:   matt
Date:           Tue Feb 14 17:32:43 UTC 2012

Modified Files:
        src/lib/libc/arch/arm/sys: __aeabi_read_tp.S

Log Message:
Add workaround for ARM cores that don't properly implement the MRC instruction
used for reading the thread pointer.  This is the corresponding change which
was made to <arm/mcontext.h>


To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 src/lib/libc/arch/arm/sys/__aeabi_read_tp.S

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libc/arch/arm/sys/__aeabi_read_tp.S
diff -u src/lib/libc/arch/arm/sys/__aeabi_read_tp.S:1.1 src/lib/libc/arch/arm/sys/__aeabi_read_tp.S:1.2
--- src/lib/libc/arch/arm/sys/__aeabi_read_tp.S:1.1	Fri Nov 18 16:10:02 2011
+++ src/lib/libc/arch/arm/sys/__aeabi_read_tp.S	Tue Feb 14 17:32:43 2012
@@ -2,4 +2,12 @@
 
 ENTRY(__aeabi_read_tp)
 	mrc p15, 0, r0, c13, c0, 3
+#ifndef _ARM_ARCH_6
+	cmp r0, #0			/* was it zero? */
+	RETc(ne)			/* return it's not zero */
+	push {r1}			/* syscall zeroes r1 */
+	SYSTRAP(_lwp_getprivate)	/* can't fail */
+	pop {r1}			/* restore r1 */
+#endif
 	RET
+_END(__aeabi_read_tp)

Reply via email to