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.14-437-ga0cf1ed


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  a0cf1edd4cf2b3bf1ec2f772b47c8eaafd899383 (commit)
      from  af968f62f24c5c0ef4e7e5ab41acae946908c112 (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://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=a0cf1edd4cf2b3bf1ec2f772b47c8eaafd899383

commit a0cf1edd4cf2b3bf1ec2f772b47c8eaafd899383
Author: Ulrich Drepper <drepper@gmail.com>
Date:   Mon Oct 24 21:17:10 2011 -0400

    Use inline asm for DLA_FMS because of broken old compilers

diff --git a/ChangeLog b/ChangeLog
index a2e155a..108d9a9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2011-10-24  Ulrich Drepper  <drepper@gmail.com>
 
+	* sysdeps/x86_64/dla.h (DLA_FMS): Some compilers fail to inline
+	__builtin_fma in some situations.  Have to use an asm.
+
 	* config.make.in: Add have-mfma4 entry.
 	* configure.in: Substitute libc_cv_cc_fma4.
 	* math/Makefile (dbl-only-routines): Add sincostab.
diff --git a/sysdeps/x86_64/dla.h b/sysdeps/x86_64/dla.h
index 7aa06e5..6fe8f74 100644
--- a/sysdeps/x86_64/dla.h
+++ b/sysdeps/x86_64/dla.h
@@ -1,6 +1,10 @@
-#if defined __FMA4__ || defined __FMA__
+#ifdef __FMA4__
 # define DLA_FMS(x,y,z) \
-  __builtin_fma (x, y, -z)
+  ({ double __z;							      \
+     asm ("vfmsubsd %3, %2, %1, %0"					      \
+	  : "=x" (__z)							      \
+	  : "x" ((double) (x)), "xm" ((double) (y)) , "x" ((double) (z)));    \
+    __z; })
 #endif
 
 #include "sysdeps/ieee754/dbl-64/dla.h"

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog            |    3 +++
 sysdeps/x86_64/dla.h |    8 ++++++--
 2 files changed, 9 insertions(+), 2 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]