From 337c270829f7088949ba0c96fffa6326fde17f78 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sun, 26 Apr 2009 05:42:49 +0000 Subject: * sysdeps/i386/fpu/s_tan.S: Set errno for ±Inf. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * sysdeps/i386/fpu/s_tanf.S: Likewise. * sysdeps/i386/fpu/s_tanl.S: Likewise. * sysdeps/ieee754/dbl-64/s_tan.c: Likewise. * sysdeps/ieee754/flt-32/s_tanf.c: Likewise. * sysdeps/x86_64/fpu/s_tanl.S: Likewise. * math/libm-test.inc: Add tests for errno after tan calls with ±Inf. --- sysdeps/x86_64/fpu/s_tanl.S | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'sysdeps/x86_64') diff --git a/sysdeps/x86_64/fpu/s_tanl.S b/sysdeps/x86_64/fpu/s_tanl.S index 674e908acc..6427e3f6f0 100644 --- a/sysdeps/x86_64/fpu/s_tanl.S +++ b/sysdeps/x86_64/fpu/s_tanl.S @@ -4,15 +4,24 @@ * * Adapted for `long double' by Ulrich Drepper . * Adapted for x86-64 by Andreas Jaeger . + * Fixed errno handling by Ulrich Drepper . */ +#define __need_Emath +#include #include RCSID("$NetBSD: $") ENTRY(__tanl) fldt 8(%rsp) - fptan + fxam + fstsw %ax + movb $0x45, %dh + andb %ah, %dh + cmpb $0x05, %dh + je 3f +4: fptan fnstsw %ax testl $0x400,%eax jnz 1f @@ -29,5 +38,8 @@ ENTRY(__tanl) fptan fstp %st(0) ret +3: call __errno_location@PLT + movl $EDOM, (%rax) + jmp 4b END (__tanl) weak_alias (__tanl, tanl) -- cgit 1.4.1