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.10-296-g9a1ea15
- From: drepper at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 24 Aug 2009 21:53:12 -0000
- Subject: GNU C Library master sources branch, master, updated. glibc-2.10-296-g9a1ea15
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 9a1ea1525eb8e02ce20eb93d65dc880186731bf7 (commit)
from 4a8f61a797e4c02c5ea7ab810af0816914ca5233 (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=9a1ea1525eb8e02ce20eb93d65dc880186731bf7
commit 9a1ea1525eb8e02ce20eb93d65dc880186731bf7
Author: Ulrich Drepper <drepper@redhat.com>
Date: Mon Aug 24 14:52:49 2009 -0700
Optimize float construction/extraction on x86-64.
diff --git a/ChangeLog b/ChangeLog
index bc1c0f1..c29660d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2009-08-24 Ulrich Drepper <drepper@redhat.com>
+
+ * sysdeps/x86_64/fpu/math_private.h: Add specialized GET_FLOAT_WORD
+ and SET_FLOAT_WORD definitions.
+
2009-08-24 Roland McGrath <roland@redhat.com>
* sysdeps/unix/syscall-template.S: New file.
diff --git a/sysdeps/x86_64/fpu/math_private.h b/sysdeps/x86_64/fpu/math_private.h
index 4febcbb..8f4b792 100644
--- a/sysdeps/x86_64/fpu/math_private.h
+++ b/sysdeps/x86_64/fpu/math_private.h
@@ -18,4 +18,24 @@ do \
while (0)
#include <math/math_private.h>
+
+/* We can do a few things better on x86-64. */
+
+/* Direct movement of float into integer register. */
+#undef GET_FLOAT_WORD
+#define GET_FLOAT_WORD(i,d) \
+do { \
+ int i_; \
+ asm ("movd %1, %0" : "=rm" (i_) : "x" (d)); \
+ (i) = i_; \
+} while (0)
+
+/* And the reverse. */
+#undef SET_FLOAT_WORD
+#define SET_FLOAT_WORD(d,i) \
+do { \
+ int i_ = i; \
+ asm ("movd %1, %0" : "=x" (d) : "rm" (i_)); \
+} while (0)
+
#endif
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 5 +++++
sysdeps/x86_64/fpu/math_private.h | 20 ++++++++++++++++++++
2 files changed, 25 insertions(+), 0 deletions(-)
hooks/post-receive
--
GNU C Library master sources