26 lines
337 B
ArmAsm
26 lines
337 B
ArmAsm
.global log1p
|
|
.type log1p,@function
|
|
log1p:
|
|
mov 8(%esp),%eax
|
|
fldln2
|
|
and $0x7fffffff,%eax
|
|
fldl 4(%esp)
|
|
cmp $0x3fd28f00,%eax
|
|
ja 1f
|
|
cmp $0x00100000,%eax
|
|
jb 2f
|
|
fyl2xp1
|
|
fstpl 4(%esp)
|
|
fldl 4(%esp)
|
|
ret
|
|
1: fld1
|
|
faddp
|
|
fyl2x
|
|
fstpl 4(%esp)
|
|
fldl 4(%esp)
|
|
ret
|
|
# subnormal x, return x with underflow
|
|
2: fsts 4(%esp)
|
|
fstp %st(1)
|
|
ret
|