2002-08-31  Andreas Jaeger  <aj@suse.de>

	* sysdeps/x86_64/fpu/s_copysign.S: Fix algorithm.

	* sysdeps/x86_64/fpu/libm-test-ulps: Add ulps for double tests.
This commit is contained in:
Andreas Jaeger 2002-08-31 10:33:26 +00:00
parent 22ca6116c0
commit 7c9466bc76
2 changed files with 17 additions and 8 deletions

View File

@ -1,3 +1,9 @@
2002-08-31 Andreas Jaeger <aj@suse.de>
* sysdeps/x86_64/fpu/s_copysign.S: Fix algorithm.
* sysdeps/x86_64/fpu/libm-test-ulps: Add ulps for double tests.
2002-08-31 Ulrich Drepper <drepper@redhat.com> 2002-08-31 Ulrich Drepper <drepper@redhat.com>
* stdio-common/Makefile (generated): Add errlist-compat.c. * stdio-common/Makefile (generated): Add errlist-compat.c.

View File

@ -27,10 +27,14 @@
#endif #endif
.align ALIGNARG(4) .align ALIGNARG(4)
ASM_TYPE_DIRECTIVE(mask,@object) ASM_TYPE_DIRECTIVE(signmask,@object)
mask: signmask:
.byte 0, 0, 0, 0, 0, 0, 0, 0x80 .byte 0, 0, 0, 0, 0, 0, 0, 0x80
ASM_SIZE_DIRECTIVE(mask) .byte 0, 0, 0, 0, 0, 0, 0, 0
othermask:
.byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f
.byte 0, 0, 0, 0, 0, 0, 0, 0
ASM_SIZE_DIRECTIVE(othermask)
#ifdef PIC #ifdef PIC
#define MO(op) op##(%rip) #define MO(op) op##(%rip)
@ -39,11 +43,10 @@ mask:
#endif #endif
ENTRY(__copysign) ENTRY(__copysign)
movlpd MO(mask),%xmm3 andpd MO(othermask),%xmm0
andps %xmm3,%xmm0 andpd MO(signmask),%xmm1
andnpd %xmm1,%xmm3 orpd %xmm1,%xmm0
orpd %xmm3,%xmm0 ret
retq
END (__copysign) END (__copysign)
weak_alias (__copysign, copysign) weak_alias (__copysign, copysign)