don't hardcode register r0/v1 when reading the TLS

this leads to much improved code when calling __get_tls()

Change-Id: I21d870fb33c33a921ca55c4e100772e0f7a8d1e4
diff --git a/libc/private/bionic_tls.h b/libc/private/bionic_tls.h
index 56a0ac2..225a617 100644
--- a/libc/private/bionic_tls.h
+++ b/libc/private/bionic_tls.h
@@ -84,20 +84,17 @@
 /* get the TLS */
 #if defined(__arm__)
 # define __get_tls() \
-    ({ register unsigned int __val asm("r0"); \
-       asm ("mrc p15, 0, r0, c13, c0, 3" : "=r"(__val) ); \
-       (volatile void*)__val; })
+    ({ register unsigned int __val; \
+       asm ("mrc p15, 0, %0, c13, c0, 3" : "=r"(__val)); \
+       (volatile void*) __val; })
 #elif defined(__mips__)
 # define __get_tls() \
-    ({ register unsigned int __val asm("v1");   \
-        asm (                                   \
-            "   .set    push\n"                 \
-            "   .set    mips32r2\n"             \
-            "   rdhwr   %0,$29\n"               \
-            "   .set    pop\n"                  \
-            : "=r"(__val)                       \
-            );                                  \
-        (volatile void*)__val; })
+    ({ register unsigned int __val; \
+       asm ("   .set    push\n" \
+            "   .set    mips32r2\n" \
+            "   rdhwr   %0,$29\n" \
+            "   .set    pop\n" : "=r"(__val)); \
+       (volatile void*) __val; })
 #elif defined(__i386__)
 # define __get_tls() \
     ({ register void* __val; \