From f13f1b26e4985b12e3c4bfaae80c65e3839579c2 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Mon, 17 Mar 1997 04:06:49 +0000 Subject: Change return value for -inf argument to -1.0. --- sysdeps/libm-i387/s_expm1.S | 9 +++++---- sysdeps/libm-i387/s_expm1f.S | 9 +++++---- sysdeps/libm-i387/s_expm1l.S | 9 +++++---- 3 files changed, 15 insertions(+), 12 deletions(-) (limited to 'sysdeps') diff --git a/sysdeps/libm-i387/s_expm1.S b/sysdeps/libm-i387/s_expm1.S index 78e8013b7e..e1b198d604 100644 --- a/sysdeps/libm-i387/s_expm1.S +++ b/sysdeps/libm-i387/s_expm1.S @@ -30,9 +30,9 @@ .text #endif .align ALIGNARG(4) - ASM_TYPE_DIRECTIVE(zero,@object) -zero: .double 0.0 - ASM_SIZE_DIRECTIVE(zero) + ASM_TYPE_DIRECTIVE(minus1,@object) +minus1: .double -1.0 + ASM_SIZE_DIRECTIVE(minus1) ASM_TYPE_DIRECTIVE(one,@object) one: .double 1.0 ASM_SIZE_DIRECTIVE(one) @@ -79,7 +79,8 @@ ENTRY(__expm1) 2: testl $0x200, %eax // Test sign. jz 3f // If positive, jump. - fldl MO(zero) // Set result to 0. + fstp %st + fldl MO(minus1) // Set result to -1.0. 3: ret END(__expm1) weak_alias (__expm1, expm1) diff --git a/sysdeps/libm-i387/s_expm1f.S b/sysdeps/libm-i387/s_expm1f.S index 00f1562e73..8626fee45d 100644 --- a/sysdeps/libm-i387/s_expm1f.S +++ b/sysdeps/libm-i387/s_expm1f.S @@ -30,9 +30,9 @@ .text #endif .align ALIGNARG(4) - ASM_TYPE_DIRECTIVE(zero,@object) -zero: .double 0.0 - ASM_SIZE_DIRECTIVE(zero) + ASM_TYPE_DIRECTIVE(minus1,@object) +minus1: .double -1.0 + ASM_SIZE_DIRECTIVE(minus1) ASM_TYPE_DIRECTIVE(one,@object) one: .double 1.0 ASM_SIZE_DIRECTIVE(one) @@ -79,7 +79,8 @@ ENTRY(__expm1f) 2: testl $0x200, %eax // Test sign. jz 3f // If positive, jump. - fldl MO(zero) // Set result to 0. + fstp %st + fldl MO(minus1) // Set result to -1.0. 3: ret END(__expm1f) weak_alias (__expm1f, expm1f) diff --git a/sysdeps/libm-i387/s_expm1l.S b/sysdeps/libm-i387/s_expm1l.S index b7e6b36d39..46290ca4a9 100644 --- a/sysdeps/libm-i387/s_expm1l.S +++ b/sysdeps/libm-i387/s_expm1l.S @@ -30,9 +30,9 @@ .text #endif .align ALIGNARG(4) - ASM_TYPE_DIRECTIVE(zero,@object) -zero: .double 0.0 - ASM_SIZE_DIRECTIVE(zero) + ASM_TYPE_DIRECTIVE(minus1,@object) +minus1: .double -1.0 + ASM_SIZE_DIRECTIVE(minus1) ASM_TYPE_DIRECTIVE(one,@object) one: .double 1.0 ASM_SIZE_DIRECTIVE(one) @@ -79,7 +79,8 @@ ENTRY(__expm1l) 2: testl $0x200, %eax // Test sign. jz 3f // If positive, jump. - fldl MO(zero) // Set result to 0. + fstp %st + fldl MO(minus1) // Set result to -1.0. 3: ret END(__expm1l) weak_alias (__expm1l, expm1l) -- cgit v1.2.3