aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/x86_64/fpu/s_cosf.S
diff options
context:
space:
mode:
authorLiubov Dmitrieva <liubov.dmitrieva@gmail.com>2012-09-10 11:44:49 +0200
committerAndreas Jaeger <aj@suse.de>2012-09-10 11:44:49 +0200
commit80ccd52c95bda018899d83f21c797dd0fd028512 (patch)
tree428a02774c0b6a050ce30b929e14c6250bd1173c /sysdeps/x86_64/fpu/s_cosf.S
parent3d9b46b3500566163815747173002d3d0bbb9b2f (diff)
downloadglibc-80ccd52c95bda018899d83f21c797dd0fd028512.zip
glibc-80ccd52c95bda018899d83f21c797dd0fd028512.tar.gz
glibc-80ccd52c95bda018899d83f21c797dd0fd028512.tar.bz2
Fix x86 SSE cosf, sinf issues
* sysdeps/i386/i686/fpu/multiarch/s_sinf-sse2.S: Fix unwind info if defined PIC. Fix special cases description. * sysdeps/i386/i686/fpu/multiarch/s_cosf-sse2.S: Likewise. * sysdeps/x86_64/fpu/s_sinf.S: Fix special cases description, fix DP_HI_MASK entry. * sysdeps/x86_64/fpu/s_cosf.S: Likewise.
Diffstat (limited to 'sysdeps/x86_64/fpu/s_cosf.S')
-rw-r--r--sysdeps/x86_64/fpu/s_cosf.S24
1 files changed, 8 insertions, 16 deletions
diff --git a/sysdeps/x86_64/fpu/s_cosf.S b/sysdeps/x86_64/fpu/s_cosf.S
index 7eeefe8..dc8c76a 100644
--- a/sysdeps/x86_64/fpu/s_cosf.S
+++ b/sysdeps/x86_64/fpu/s_cosf.S
@@ -50,12 +50,12 @@
* 9) if x is NaN, return x-x.
*
* Special cases:
- * cos(+-0)==+-0 not raising inexact/underflow,
- * cos(subnormal) raises inexact/underflow
- * cos(min_normalized) raises inexact/underflow
- * cos(normalized) raises inexact
- * cos(Inf) = NaN, raises invalid, sets errno to EDOM
- * cos(NaN) = NaN
+ * cos(+-0) = 1 not raising inexact,
+ * cos(subnormal) raises inexact,
+ * cos(min_normalized) raises inexact,
+ * cos(normalized) raises inexact,
+ * cos(Inf) = NaN, raises invalid, sets errno to EDOM,
+ * cos(NaN) = NaN.
*/
.text
@@ -163,10 +163,6 @@ L(sin_poly):
cvtsd2ss %xmm3, %xmm0 /* SP result */
ret
-
-
-
-
.p2align 4
L(large_args):
/* Here if |x|>=9*Pi/4 */
@@ -257,7 +253,6 @@ L(very_large_skip2):
jmp L(reconstruction) /* end of very_large_args peth */
-
.p2align 4
L(arg_less_pio4):
/* Here if |x|<Pi/4 */
@@ -317,7 +312,6 @@ L(arg_inf_or_nan):
/* Here if x is Inf. Set errno to EDOM. */
call JUMPTARGET(__errno_location)
- lea (%rax), %rax
movl $EDOM, (%rax)
.p2align 4
@@ -328,8 +322,6 @@ L(skip_errno_setting):
ret
END(__cosf)
-
-
.section .rodata, "a"
.p2align 3
L(PIO4J): /* Table of j*Pi/4, for j=0,1,..,10 */
@@ -516,8 +508,8 @@ L(DP_ABS_MASK): /* Mask for getting DP absolute value */
.p2align 3
L(DP_HI_MASK): /* Mask for getting high 21 bits of DP value */
.long 0x00000000,0xffffffff
- .type L(DP_ABS_MASK), @object
- ASM_SIZE_DIRECTIVE(L(DP_ABS_MASK))
+ .type L(DP_HI_MASK), @object
+ ASM_SIZE_DIRECTIVE(L(DP_HI_MASK))
.p2align 4
L(SP_ABS_MASK): /* Mask for getting SP absolute value */