summaryrefslogtreecommitdiffstats
path: root/libc/private
diff options
context:
space:
mode:
authorElliott Hughes <enh@google.com>2013-06-18 14:00:59 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2013-06-18 14:00:59 -0700
commitfb11350c814cd4267cbdc4e6f445ebab4d14bfc5 (patch)
tree83cac783e02a08de970eb6f7785ee20be7e0f4d8 /libc/private
parent83476f0747b5efe6afc69e68d25f24fa73adaf4d (diff)
parent13e23302c93fdd8b52c606277f32dec0627ddbbd (diff)
downloadbionic-fb11350c814cd4267cbdc4e6f445ebab4d14bfc5.zip
bionic-fb11350c814cd4267cbdc4e6f445ebab4d14bfc5.tar.gz
bionic-fb11350c814cd4267cbdc4e6f445ebab4d14bfc5.tar.bz2
am 13e23302: am c656d732: Merge "Always use v1 for MIPS TLS access."
* commit '13e23302c93fdd8b52c606277f32dec0627ddbbd': Always use v1 for MIPS TLS access.
Diffstat (limited to 'libc/private')
-rw-r--r--libc/private/bionic_tls.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/libc/private/bionic_tls.h b/libc/private/bionic_tls.h
index 225a617..61b894f 100644
--- a/libc/private/bionic_tls.h
+++ b/libc/private/bionic_tls.h
@@ -89,7 +89,8 @@ extern int __set_tls(void* ptr);
(volatile void*) __val; })
#elif defined(__mips__)
# define __get_tls() \
- ({ register unsigned int __val; \
+ /* On mips32r1, this goes via a kernel illegal instruction trap that's optimized for v1. */ \
+ ({ register unsigned int __val asm("v1"); \
asm (" .set push\n" \
" .set mips32r2\n" \
" rdhwr %0,$29\n" \