提交 ec431894 编写于 作者: S Szabolcs Nagy

math: use fnstsw consistently instead of fstsw in x87 asm

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.
上级 a732e80d
...@@ -4,7 +4,7 @@ fmod: ...@@ -4,7 +4,7 @@ fmod:
fldl 12(%esp) fldl 12(%esp)
fldl 4(%esp) fldl 4(%esp)
1: fprem 1: fprem
fstsw %ax fnstsw %ax
sahf sahf
jp 1b jp 1b
fstp %st(1) fstp %st(1)
......
...@@ -4,7 +4,7 @@ fmodf: ...@@ -4,7 +4,7 @@ fmodf:
flds 8(%esp) flds 8(%esp)
flds 4(%esp) flds 4(%esp)
1: fprem 1: fprem
fstsw %ax fnstsw %ax
sahf sahf
jp 1b jp 1b
fstp %st(1) fstp %st(1)
......
...@@ -4,7 +4,7 @@ fmodl: ...@@ -4,7 +4,7 @@ fmodl:
fldt 16(%esp) fldt 16(%esp)
fldt 4(%esp) fldt 4(%esp)
1: fprem 1: fprem
fstsw %ax fnstsw %ax
sahf sahf
jp 1b jp 1b
fstp %st(1) fstp %st(1)
......
...@@ -7,7 +7,7 @@ drem: ...@@ -7,7 +7,7 @@ drem:
fldl 12(%esp) fldl 12(%esp)
fldl 4(%esp) fldl 4(%esp)
1: fprem1 1: fprem1
fstsw %ax fnstsw %ax
sahf sahf
jp 1b jp 1b
fstp %st(1) fstp %st(1)
......
...@@ -7,7 +7,7 @@ dremf: ...@@ -7,7 +7,7 @@ dremf:
flds 8(%esp) flds 8(%esp)
flds 4(%esp) flds 4(%esp)
1: fprem1 1: fprem1
fstsw %ax fnstsw %ax
sahf sahf
jp 1b jp 1b
fstp %st(1) fstp %st(1)
......
...@@ -4,7 +4,7 @@ remainderl: ...@@ -4,7 +4,7 @@ remainderl:
fldt 16(%esp) fldt 16(%esp)
fldt 4(%esp) fldt 4(%esp)
1: fprem1 1: fprem1
fstsw %ax fnstsw %ax
sahf sahf
jp 1b jp 1b
fstp %st(1) fstp %st(1)
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
.type sqrt,@function .type sqrt,@function
sqrt: fldl 4(%esp) sqrt: fldl 4(%esp)
fsqrt fsqrt
fstsw %ax fnstsw %ax
sub $12,%esp sub $12,%esp
fld %st(0) fld %st(0)
fstpt (%esp) fstpt (%esp)
......
...@@ -4,7 +4,7 @@ fmodl: ...@@ -4,7 +4,7 @@ fmodl:
fldt 24(%esp) fldt 24(%esp)
fldt 8(%esp) fldt 8(%esp)
1: fprem 1: fprem
fstsw %ax fnstsw %ax
testb $4,%ah testb $4,%ah
jnz 1b jnz 1b
fstp %st(1) fstp %st(1)
......
...@@ -4,7 +4,7 @@ remainderl: ...@@ -4,7 +4,7 @@ remainderl:
fldt 24(%esp) fldt 24(%esp)
fldt 8(%esp) fldt 8(%esp)
1: fprem1 1: fprem1
fstsw %ax fnstsw %ax
testb $4,%ah testb $4,%ah
jnz 1b jnz 1b
fstp %st(1) fstp %st(1)
......
...@@ -4,7 +4,7 @@ fmodl: ...@@ -4,7 +4,7 @@ fmodl:
fldt 24(%rsp) fldt 24(%rsp)
fldt 8(%rsp) fldt 8(%rsp)
1: fprem 1: fprem
fstsw %ax fnstsw %ax
testb $4,%ah testb $4,%ah
jnz 1b jnz 1b
fstp %st(1) fstp %st(1)
......
...@@ -4,7 +4,7 @@ remainderl: ...@@ -4,7 +4,7 @@ remainderl:
fldt 24(%rsp) fldt 24(%rsp)
fldt 8(%rsp) fldt 8(%rsp)
1: fprem1 1: fprem1
fstsw %ax fnstsw %ax
testb $4,%ah testb $4,%ah
jnz 1b jnz 1b
fstp %st(1) fstp %st(1)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册