summaryrefslogtreecommitdiffstats
path: root/lib/libc
diff options
context:
space:
mode:
authorjhibbits <jhibbits@FreeBSD.org>2015-01-06 03:50:43 +0000
committerjhibbits <jhibbits@FreeBSD.org>2015-01-06 03:50:43 +0000
commit5de1b857a0f8b40d58ffb6bc6876312516ca397c (patch)
tree14f24de90530d06eb211a4a96ac699fc966d0d23 /lib/libc
parent0c99d3fb5488d53a1b6c9afd134fb9f7066e373a (diff)
downloadFreeBSD-src-5de1b857a0f8b40d58ffb6bc6876312516ca397c.zip
FreeBSD-src-5de1b857a0f8b40d58ffb6bc6876312516ca397c.tar.gz
Avoid use of register variables. Clang 3.5 treats this as undefined behavior,
and bad things happen. MFC after: 1 week
Diffstat (limited to 'lib/libc')
-rw-r--r--lib/libc/powerpc/gen/_set_tp.c3
-rw-r--r--lib/libc/powerpc64/gen/_set_tp.c3
2 files changed, 2 insertions, 4 deletions
diff --git a/lib/libc/powerpc/gen/_set_tp.c b/lib/libc/powerpc/gen/_set_tp.c
index 5a89698..aa1150a 100644
--- a/lib/libc/powerpc/gen/_set_tp.c
+++ b/lib/libc/powerpc/gen/_set_tp.c
@@ -29,7 +29,6 @@
void
_set_tp(void *tpval)
{
- register void *tp __asm__("r2");
- __asm __volatile("mr %0,%1" : "=r"(tp) : "r"((char*)tpval + 0x7008));
+ __asm __volatile("mr 2,%0" :: "r"((char*)tpval + 0x7008));
}
diff --git a/lib/libc/powerpc64/gen/_set_tp.c b/lib/libc/powerpc64/gen/_set_tp.c
index 9adb6a5..32137e5 100644
--- a/lib/libc/powerpc64/gen/_set_tp.c
+++ b/lib/libc/powerpc64/gen/_set_tp.c
@@ -29,7 +29,6 @@
void
_set_tp(void *tpval)
{
- register void *tp __asm__("r13");
- __asm __volatile("mr %0,%1" : "=r"(tp) : "r"((char*)tpval + 0x7010));
+ __asm __volatile("mr 13,%0" :: "r"((char*)tpval + 0x7010));
}
OpenPOWER on IntegriCloud