math: fix i386 atan2.s to raise underflow for subnormal results
This commit is contained in:
parent
6d85096f49
commit
411efb3bc6
2 changed files with 24 additions and 2 deletions
|
|
@ -4,4 +4,14 @@ atan2:
|
|||
fldl 4(%esp)
|
||||
fldl 12(%esp)
|
||||
fpatan
|
||||
ret
|
||||
fstl 4(%esp)
|
||||
mov 8(%esp),%eax
|
||||
add %eax,%eax
|
||||
cmp $0x00200000,%eax
|
||||
jae 1f
|
||||
# subnormal x, return x with underflow
|
||||
fnstsw %ax
|
||||
and $16,%ax
|
||||
jnz 1f
|
||||
fsts 4(%esp)
|
||||
1: ret
|
||||
|
|
|
|||
|
|
@ -4,4 +4,16 @@ atan2f:
|
|||
flds 4(%esp)
|
||||
flds 8(%esp)
|
||||
fpatan
|
||||
ret
|
||||
fsts 4(%esp)
|
||||
mov 4(%esp),%eax
|
||||
add %eax,%eax
|
||||
cmp $0x01000000,%eax
|
||||
jae 1f
|
||||
# subnormal x, return x with underflow
|
||||
fnstsw %ax
|
||||
and $16,%ax
|
||||
jnz 1f
|
||||
fld %st(0)
|
||||
fmul %st(1)
|
||||
fstps 4(%esp)
|
||||
1: ret
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue