This is the mail archive of the
glibc-cvs@sourceware.org
mailing list for the glibc project.
GNU C Library master sources branch master updated. glibc-2.18-815-g4ab6aca
- From: rth at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 24 Jan 2014 17:07:24 -0000
- Subject: GNU C Library master sources branch master updated. glibc-2.18-815-g4ab6aca
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".
The branch, master has been updated
via 4ab6acaebd0047dc37c6493946484be9f1b4920b (commit)
from 47590bce28616abbcee93457da91d65a7a07589b (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=4ab6acaebd0047dc37c6493946484be9f1b4920b
commit 4ab6acaebd0047dc37c6493946484be9f1b4920b
Author: Richard Henderson <rth@twiddle.net>
Date: Fri Jan 24 09:07:04 2014 -0800
alpha: Fix tls-macros.h
Reported to the gcc bugzilla, there was a missing dependency on $gp
that let the compiler generated $gp reload be scheduled across the
macros here.
diff --git a/ports/ChangeLog.alpha b/ports/ChangeLog.alpha
index 24540e4..a23ada5 100644
--- a/ports/ChangeLog.alpha
+++ b/ports/ChangeLog.alpha
@@ -1,3 +1,8 @@
+2014-01-24 Richard Henderson <rth@redhat.com>
+
+ * sysdeps/alpha/tls-macros.h (TLS_GD): Add dependency on $gp.
+ (TLS_LD, TLS_IE): Likewise.
+
2013-12-07 Richard Henderson <rth@redhat.com>
* sysdeps/unix/sysv/linux/alpha/bits/mman.h: Use <bits/mman-linux.h>,
diff --git a/ports/sysdeps/alpha/tls-macros.h b/ports/sysdeps/alpha/tls-macros.h
index 0385d93..00489c2 100644
--- a/ports/sysdeps/alpha/tls-macros.h
+++ b/ports/sysdeps/alpha/tls-macros.h
@@ -2,21 +2,21 @@
extern void *__tls_get_addr (void *);
-# define TLS_GD(x) \
- ({ void *__result; \
- asm ("lda %0, " #x "($gp) !tlsgd" : "=r" (__result)); \
+# define TLS_GD(x) \
+ ({ register void *__gp asm ("$29"); void *__result; \
+ asm ("lda %0, " #x "($gp) !tlsgd" : "=r" (__result) : "r"(__gp)); \
__tls_get_addr (__result); })
-# define TLS_LD(x) \
- ({ void *__result; \
- asm ("lda %0, " #x "($gp) !tlsldm" : "=r" (__result)); \
- __result = __tls_get_addr (__result); \
- asm ("lda %0, " #x "(%0) !dtprel" : "+r" (__result)); \
+# define TLS_LD(x) \
+ ({ register void *__gp asm ("$29"); void *__result; \
+ asm ("lda %0, " #x "($gp) !tlsldm" : "=r" (__result) : "r"(__gp)); \
+ __result = __tls_get_addr (__result); \
+ asm ("lda %0, " #x "(%0) !dtprel" : "+r" (__result)); \
__result; })
-# define TLS_IE(x) \
- ({ long ofs; \
- asm ("ldq %0, " #x "($gp) !gottprel" : "=r"(ofs)); \
+# define TLS_IE(x) \
+ ({ register void *__gp asm ("$29"); long ofs; \
+ asm ("ldq %0, " #x "($gp) !gottprel" : "=r"(ofs) : "r"(__gp)); \
__builtin_thread_pointer () + ofs; })
# define TLS_LE(x) \
-----------------------------------------------------------------------
Summary of changes:
ports/ChangeLog.alpha | 5 +++++
ports/sysdeps/alpha/tls-macros.h | 22 +++++++++++-----------
2 files changed, 16 insertions(+), 11 deletions(-)
hooks/post-receive
--
GNU C Library master sources