]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Update.
authorUlrich Drepper <drepper@redhat.com>
Sun, 18 Feb 2001 19:52:52 +0000 (19:52 +0000)
committerUlrich Drepper <drepper@redhat.com>
Sun, 18 Feb 2001 19:52:52 +0000 (19:52 +0000)
2001-02-18  Ulrich Drepper  <drepper@redhat.com>

* math/libm-test.inc (scalb_test): Require invalid exception being
raised for invalid parameters.
* sysdeps/i386/fpu/e_scalb.S: Raise invalid exception if necessary.
* sysdeps/i386/fpu/e_scalbf.S: Likewise.
* sysdeps/i386/fpu/e_scalbl.S: Likewise.

ChangeLog
sysdeps/i386/fpu/e_scalb.S
sysdeps/i386/fpu/e_scalbf.S
sysdeps/i386/fpu/e_scalbl.S

index 9101dc6ab3238271de375003da6fed7fe0729c2f..6753e5c514a68f5acdeba74f20dd6968ebe3e7f0 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2001-02-18  Ulrich Drepper  <drepper@redhat.com>
+
+       * math/libm-test.inc (scalb_test): Require invalid exception being
+       raised for invalid parameters.
+       * sysdeps/i386/fpu/e_scalb.S: Raise invalid exception if necessary.
+       * sysdeps/i386/fpu/e_scalbf.S: Likewise.
+       * sysdeps/i386/fpu/e_scalbl.S: Likewise.
+
 2001-02-18  Mark Kettenis  <kettenis@gnu.org>
 
        * sysdeps/mach/getsysstats.c (__get_phys_pages): Change return
index f463002617209cc2ecf098f9ff7fcd49c482b5ce..1596f6a700a2a0eb225c55f1e326895e96418bd8 100644 (file)
@@ -56,7 +56,7 @@ ENTRY(__ieee754_scalb)
        fcomp   %st(2)
        fnstsw
        sahf
-       jne     2f
+       jne     4f
        fscale
        fstp    %st(1)
        ret
@@ -75,6 +75,7 @@ ENTRY(__ieee754_scalb)
        fstp    %st
        andl    $0x80000000, %edx
        andl    $8, %eax
+       jnz     4f
        shrl    $27, %edx
        addl    %edx, %eax
        fldl    MOX(zero_nan, %eax, 1)
@@ -95,4 +96,11 @@ ENTRY(__ieee754_scalb)
        /* The first parameter is a NaN.  Return it.  */
 3:     fstp    %st(1)
        ret
+
+       /* Return NaN and raise the invalid exception.  */
+4:     fstp    %st
+       fstp    %st
+       fldz
+       fdiv    %st
+       ret
 END(__ieee754_scalb)
index 4b5b0d07b379ab714da2e03273e7405c2179a761..d41c29327d7a1e37b8cb07d1061b78290621155e 100644 (file)
@@ -58,7 +58,7 @@ ENTRY(__ieee754_scalbf)
        fcomp   %st(2)
        fnstsw
        sahf
-       jne     2f
+       jne     4f
        fscale
        fstp    %st(1)
        ret
@@ -77,6 +77,7 @@ ENTRY(__ieee754_scalbf)
        fstp    %st
        andl    $0x80000000, %edx
        andl    $8, %eax
+       jnz     4f
        shrl    $27, %edx
        addl    %edx, %eax
        fldl    MOX(zero_nan, %eax, 1)
@@ -97,4 +98,11 @@ ENTRY(__ieee754_scalbf)
        /* The first parameter is a NaN.  Return it.  */
 3:     fstp    %st(1)
        ret
+
+       /* Return NaN and raise the invalid exception.  */
+4:     fstp    %st
+       fstp    %st
+       fldz
+       fdiv    %st
+       ret
 END(__ieee754_scalbf)
index e8166fa9d5c262691a6963469f6dbaf4aacd666a..65644f8f0ecb2c4e3d0585a9eead8131cd065ef4 100644 (file)
@@ -58,7 +58,7 @@ ENTRY(__ieee754_scalbl)
        fcomp   %st(2)
        fnstsw
        sahf
-       jne     2f
+       jne     4f
        fscale
        fstp    %st(1)
        ret
@@ -77,6 +77,7 @@ ENTRY(__ieee754_scalbl)
        fstp    %st
        andl    $0x8000, %edx
        andl    $8, %eax
+       jnz     4f
        shrl    $11, %edx
        addl    %edx, %eax
        fldl    MOX(zero_nan, %eax, 1)
@@ -97,4 +98,11 @@ ENTRY(__ieee754_scalbl)
        /* The first parameter is a NaN.  Return it.  */
 3:     fstp    %st(1)
        ret
+
+       /* Return NaN and raise the invalid exception.  */
+4:     fstp    %st
+       fstp    %st
+       fldz
+       fdiv    %st
+       ret
 END(__ieee754_scalbl)