This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]