From 7bd951ff59e0443ca1bdd5b0ea58f6f4f641ac73 Mon Sep 17 00:00:00 2001 From: "David S. Miller" Date: Wed, 14 Mar 2012 16:21:40 -0700 Subject: [PATCH] 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. --- 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 + + * 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 * 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 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 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 -- 2.7.4