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.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


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