math: use fnstsw consistently instead of fstsw in x87 asm
authorSzabolcs Nagy <nsz@port70.net>
Wed, 5 Nov 2014 21:13:58 +0000 (22:13 +0100)
committerSzabolcs Nagy <nsz@port70.net>
Wed, 5 Nov 2014 21:13:58 +0000 (22:13 +0100)
fnstsw does not wait for pending unmasked x87 floating-point exceptions
and it is the same as fstsw when all exceptions are masked which is the
only environment libc supports.

src/math/i386/fmod.s
src/math/i386/fmodf.s
src/math/i386/fmodl.s
src/math/i386/remainder.s
src/math/i386/remainderf.s
src/math/i386/remainderl.s
src/math/i386/sqrt.s
src/math/x32/fmodl.s
src/math/x32/remainderl.s
src/math/x86_64/fmodl.s
src/math/x86_64/remainderl.s

index 069fbfe765a51ac539db368f3546946025583873..2113b3c54a2a49916c63d3d4f9d1876e48e1b122 100644 (file)
@@ -4,7 +4,7 @@ fmod:
        fldl 12(%esp)
        fldl 4(%esp)
 1:     fprem
-       fstsw %ax
+       fnstsw %ax
        sahf
        jp 1b
        fstp %st(1)
index d99c80f2dd01cad1a5e515d9d9ded0d11f20bc06..e04e2a567256267afa6e21df2d6bfef174814b18 100644 (file)
@@ -4,7 +4,7 @@ fmodf:
        flds 8(%esp)
        flds 4(%esp)
 1:     fprem
-       fstsw %ax
+       fnstsw %ax
        sahf
        jp 1b
        fstp %st(1)
index 7e07e7b5af521194b5ae2cb13768b4cdc18709a3..0cb3fe9ba05ee02040751788addfcfdb865a5380 100644 (file)
@@ -4,7 +4,7 @@ fmodl:
        fldt 16(%esp)
        fldt 4(%esp)
 1:     fprem
-       fstsw %ax
+       fnstsw %ax
        sahf
        jp 1b
        fstp %st(1)
index 7f4be0519b04b02d4f4c3968a2e4c4c7c096b5a6..ab1da95dd02fd8060b29297fd0930fe721a5bf5d 100644 (file)
@@ -7,7 +7,7 @@ drem:
        fldl 12(%esp)
        fldl 4(%esp)
 1:     fprem1
-       fstsw %ax
+       fnstsw %ax
        sahf
        jp 1b
        fstp %st(1)
index ac6e36779baf85e5bb3b244c53a0bc217a858fcd..6a7378a3401755402859220b211d46fc26193c8a 100644 (file)
@@ -7,7 +7,7 @@ dremf:
        flds 8(%esp)
        flds 4(%esp)
 1:     fprem1
-       fstsw %ax
+       fnstsw %ax
        sahf
        jp 1b
        fstp %st(1)
index 009787290767ea2f801aef7a33b307147be584f7..b41518ede9ee50c8899e9e9a72a2ceca08222fb0 100644 (file)
@@ -4,7 +4,7 @@ remainderl:
        fldt 16(%esp)
        fldt 4(%esp)
 1:     fprem1
-       fstsw %ax
+       fnstsw %ax
        sahf
        jp 1b
        fstp %st(1)
index 8289d0940f6783d20eb17d9b6350504f46376cfe..57837e256889a9abfd5762ed85ff69f5c37518b7 100644 (file)
@@ -2,7 +2,7 @@
 .type sqrt,@function
 sqrt:  fldl 4(%esp)
        fsqrt
-       fstsw %ax
+       fnstsw %ax
        sub $12,%esp
        fld %st(0)
        fstpt (%esp)
index b95132042d8590f86431102a58a2448e44044546..c3f790c9bfca43bac6b36ba2b0ad1d40e7415919 100644 (file)
@@ -4,7 +4,7 @@ fmodl:
        fldt 24(%esp)
        fldt 8(%esp)
 1:     fprem
-       fstsw %ax
+       fnstsw %ax
        testb $4,%ah
        jnz 1b
        fstp %st(1)
index 79bf4feb52c0f9fb059bf09db033eaae7da547e0..376ba0e2d6c1e6ffe34f7f237c75e5f6f8cc24e8 100644 (file)
@@ -4,7 +4,7 @@ remainderl:
        fldt 24(%esp)
        fldt 8(%esp)
 1:     fprem1
-       fstsw %ax
+       fnstsw %ax
        testb $4,%ah
        jnz 1b
        fstp %st(1)
index cd8d2b7c1509edd6e1a97888a005a825d8b58567..ea07b402fed7e73001e74745f51fa1a501568476 100644 (file)
@@ -4,7 +4,7 @@ fmodl:
        fldt 24(%rsp)
        fldt 8(%rsp)
 1:     fprem
-       fstsw %ax
+       fnstsw %ax
        testb $4,%ah
        jnz 1b
        fstp %st(1)
index 2c337cf57839c7f3f04709faf8c3eb3fb0b0b902..cb3857b48630f5f295ef9980a0243fe22623876b 100644 (file)
@@ -4,7 +4,7 @@ remainderl:
        fldt 24(%rsp)
        fldt 8(%rsp)
 1:     fprem1
-       fstsw %ax
+       fnstsw %ax
        testb $4,%ah
        jnz 1b
        fstp %st(1)