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.14-600-g70c6c24
- From: drepper at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 23 Dec 2011 14:18:21 -0000
- Subject: GNU C Library master sources branch, master, updated. glibc-2.14-600-g70c6c24
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 70c6c246a2758fcdc63536d2c7855a80e58613c6 (commit)
from c044cf14b0238b6e866f4ef5f8907d6680230212 (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=70c6c246a2758fcdc63536d2c7855a80e58613c6
commit 70c6c246a2758fcdc63536d2c7855a80e58613c6
Author: Ulrich Drepper <drepper@gmail.com>
Date: Fri Dec 23 09:18:02 2011 -0500
Optimize x86-32 feraiseexcept also for !__SSE_MATH__
diff --git a/ChangeLog b/ChangeLog
index 7d77002..74b628c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2011-12-23 Ulrich Drepper <drepper@gmail.com>
+
+ * sysdeps/i386/fpu/bits/fenv.h (feraiseexcept): Also enable for
+ !__SSE_MATH__.
+
2011-12-23 Liubov Dmitrieva <liubov.dmitrieva@gmail.com>
* sysdeps/i386/i686/multiarch/wcscpy-ssse3.S: Fix wrong copying
diff --git a/sysdeps/i386/fpu/bits/fenv.h b/sysdeps/i386/fpu/bits/fenv.h
index e11e83f..8c00771 100644
--- a/sysdeps/i386/fpu/bits/fenv.h
+++ b/sysdeps/i386/fpu/bits/fenv.h
@@ -90,7 +90,7 @@ fenv_t;
#endif
-#if defined __SSE_MATH__ && defined __USE_EXTERN_INLINES
+#ifdef __USE_EXTERN_INLINES
__BEGIN_DECLS
/* Optimized versions. */
@@ -106,7 +106,12 @@ __NTH (feraiseexcept (int __excepts))
/* One example of a invalid operation is 0.0 / 0.0. */
float __f = 0.0;
+# ifdef __SSE_MATH__
__asm__ __volatile__ ("divss %0, %0 " : : "x" (__f));
+# else
+ __asm__ __volatile__ ("fdiv %%st, %%st(0); fwait"
+ : "=t" (__f) : "0" (__f));
+# endif
(void) &__f;
}
if ((FE_DIVBYZERO & __excepts) != 0)
@@ -114,7 +119,12 @@ __NTH (feraiseexcept (int __excepts))
float __f = 1.0;
float __g = 0.0;
+# ifdef __SSE_MATH__
__asm__ __volatile__ ("divss %1, %0" : : "x" (__f), "x" (__g));
+# else
+ __asm__ __volatile__ ("fdivp %%st(1), %%st; fwait"
+ : "=t" (__f) : "0" (__f), "u" (__g) : "st(1)");
+# endif
(void) &__f;
}
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 5 +++++
sysdeps/i386/fpu/bits/fenv.h | 12 +++++++++++-
2 files changed, 16 insertions(+), 1 deletions(-)
hooks/post-receive
--
GNU C Library master sources