Small optimization to sparc 64-bit copysign.

* 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.
This commit is contained in:
David S. Miller 2012-03-14 16:21:40 -07:00
parent bd951ccbe8
commit 7bd951ff59
3 changed files with 10 additions and 6 deletions

View File

@ -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> 2012-03-14 Joseph Myers <joseph@codesourcery.com>
* sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Add * sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Add

View File

@ -20,9 +20,8 @@
#include <sysdep.h> #include <sysdep.h>
ENTRY (__copysign) ENTRY (__copysign)
sethi %hi(0x80000000), %g1 fzeros %f7
st %g1, [%sp + STACK_BIAS + 128] fnegs %f7, %f7
ld [%sp + STACK_BIAS + 128], %f7
fands %f2, %f7, %f9 fands %f2, %f7, %f9
fandnot2s %f0, %f7, %f0 fandnot2s %f0, %f7, %f0
retl retl

View File

@ -20,9 +20,8 @@
#include <sysdep.h> #include <sysdep.h>
ENTRY (__copysignf) ENTRY (__copysignf)
sethi %hi(0x80000000), %g1 fzeros %f7
st %g1, [%sp + STACK_BIAS + 128] fnegs %f7, %f7
ld [%sp + STACK_BIAS + 128], %f7
fands %f3, %f7, %f9 fands %f3, %f7, %f9
fandnot2s %f1, %f7, %f1 fandnot2s %f1, %f7, %f1
retl retl