This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
[PATCH] Small optimization to sparc 64-bit copysign.
- From: David Miller <davem at davemloft dot net>
- To: libc-alpha at sourceware dot org
- Date: Wed, 14 Mar 2012 16:23:06 -0700 (PDT)
- Subject: [PATCH] Small optimization to sparc 64-bit copysign.
I noticed this while working on support for sparc VIS3 optimizations.
Committed to master.
* sysdeps/sparc/sparc64/fpu/s_copysign.S (__copysign): Use fzeros/fnegs
to load 0x80000000 into a float register instead of using the stack.
* sysdeps/sparc/sparc64/fpu/s_copysignf.S (__copysignf): Likewise.
---
ChangeLog | 6 ++++++
sysdeps/sparc/sparc64/fpu/s_copysign.S | 5 ++---
sysdeps/sparc/sparc64/fpu/s_copysignf.S | 5 ++---
3 files changed, 10 insertions(+), 6 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 83d5d2b..4983816 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2012-03-14 David S. Miller <davem@davemloft.net>
+
+ * sysdeps/sparc/sparc64/fpu/s_copysign.S (__copysign): Use fzeros/fnegs
+ to load 0x80000000 into a float register instead of using the stack.
+ * sysdeps/sparc/sparc64/fpu/s_copysignf.S (__copysignf): Likewise.
+
2012-03-14 Joseph Myers <joseph@codesourcery.com>
* sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Add
diff --git a/sysdeps/sparc/sparc64/fpu/s_copysign.S b/sysdeps/sparc/sparc64/fpu/s_copysign.S
index 571f57c..f7f69fb 100644
--- a/sysdeps/sparc/sparc64/fpu/s_copysign.S
+++ b/sysdeps/sparc/sparc64/fpu/s_copysign.S
@@ -20,9 +20,8 @@
#include <sysdep.h>
ENTRY (__copysign)
- sethi %hi(0x80000000), %g1
- st %g1, [%sp + STACK_BIAS + 128]
- ld [%sp + STACK_BIAS + 128], %f7
+ fzeros %f7
+ fnegs %f7, %f7
fands %f2, %f7, %f9
fandnot2s %f0, %f7, %f0
retl
diff --git a/sysdeps/sparc/sparc64/fpu/s_copysignf.S b/sysdeps/sparc/sparc64/fpu/s_copysignf.S
index db6a384..85577a7 100644
--- a/sysdeps/sparc/sparc64/fpu/s_copysignf.S
+++ b/sysdeps/sparc/sparc64/fpu/s_copysignf.S
@@ -20,9 +20,8 @@
#include <sysdep.h>
ENTRY (__copysignf)
- sethi %hi(0x80000000), %g1
- st %g1, [%sp + STACK_BIAS + 128]
- ld [%sp + STACK_BIAS + 128], %f7
+ fzeros %f7
+ fnegs %f7, %f7
fands %f3, %f7, %f9
fandnot2s %f1, %f7, %f1
retl
--
1.7.9.1