mirror of https://git.musl-libc.org/git/musl
3 changed files with 103 additions and 6 deletions
@ -0,0 +1,45 @@ |
|||||
|
.global hypot |
||||
|
.type hypot,@function |
||||
|
hypot: |
||||
|
mov 8(%esp),%eax |
||||
|
mov 16(%esp),%ecx |
||||
|
add %eax,%eax |
||||
|
add %ecx,%ecx |
||||
|
and %eax,%ecx |
||||
|
cmp $0xffe00000,%ecx |
||||
|
jae 2f |
||||
|
or 4(%esp),%eax |
||||
|
jnz 1f |
||||
|
fldl 12(%esp) |
||||
|
fabs |
||||
|
ret |
||||
|
1: mov 16(%esp),%eax |
||||
|
add %eax,%eax |
||||
|
or 12(%esp),%eax |
||||
|
jnz 1f |
||||
|
fldl 4(%esp) |
||||
|
fabs |
||||
|
ret |
||||
|
1: fldl 4(%esp) |
||||
|
fld %st(0) |
||||
|
fmulp |
||||
|
fldl 12(%esp) |
||||
|
fld %st(0) |
||||
|
fmulp |
||||
|
faddp |
||||
|
fsqrt |
||||
|
ret |
||||
|
2: sub $0xffe00000,%eax |
||||
|
or 4(%esp),%eax |
||||
|
jnz 1f |
||||
|
fldl 4(%esp) |
||||
|
fabs |
||||
|
ret |
||||
|
1: mov 16(%esp),%eax |
||||
|
add %eax,%eax |
||||
|
sub $0xffe00000,%eax |
||||
|
or 12(%esp),%eax |
||||
|
fldl 12(%esp) |
||||
|
jnz 1f |
||||
|
fabs |
||||
|
1: ret |
||||
@ -0,0 +1,42 @@ |
|||||
|
.global hypotf |
||||
|
.type hypotf,@function |
||||
|
hypotf: |
||||
|
mov 4(%esp),%eax |
||||
|
mov 8(%esp),%ecx |
||||
|
add %eax,%eax |
||||
|
add %ecx,%ecx |
||||
|
and %eax,%ecx |
||||
|
cmp $0xff000000,%ecx |
||||
|
jae 2f |
||||
|
test %eax,%eax |
||||
|
jnz 1f |
||||
|
flds 8(%esp) |
||||
|
fabs |
||||
|
ret |
||||
|
1: mov 8(%esp),%eax |
||||
|
add %eax,%eax |
||||
|
jnz 1f |
||||
|
flds 4(%esp) |
||||
|
fabs |
||||
|
ret |
||||
|
1: flds 4(%esp) |
||||
|
fld %st(0) |
||||
|
fmulp |
||||
|
flds 8(%esp) |
||||
|
fld %st(0) |
||||
|
fmulp |
||||
|
faddp |
||||
|
fsqrt |
||||
|
ret |
||||
|
2: cmp $0xff000000,%eax |
||||
|
jnz 1f |
||||
|
flds 4(%esp) |
||||
|
fabs |
||||
|
ret |
||||
|
1: mov 8(%esp),%eax |
||||
|
add %eax,%eax |
||||
|
cmp $0xff000000,%eax |
||||
|
flds 8(%esp) |
||||
|
jnz 1f |
||||
|
fabs |
||||
|
1: ret |
||||
Loading…
Reference in new issue