diff options
Diffstat (limited to '')
-rw-r--r-- | libc-top-half/musl/src/math/i386/scalbnl.s | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/libc-top-half/musl/src/math/i386/scalbnl.s b/libc-top-half/musl/src/math/i386/scalbnl.s new file mode 100644 index 0000000..54414c2 --- /dev/null +++ b/libc-top-half/musl/src/math/i386/scalbnl.s @@ -0,0 +1,32 @@ +.global ldexpl +.type ldexpl,@function +ldexpl: + nop + +.global scalblnl +.type scalblnl,@function +scalblnl: + nop + +.global scalbnl +.type scalbnl,@function +scalbnl: + mov 16(%esp),%eax + add $0x3ffe,%eax + cmp $0x7ffd,%eax + jae 1f + inc %eax + fldt 4(%esp) + mov %eax,12(%esp) + mov $0x80000000,%eax + mov %eax,8(%esp) + xor %eax,%eax + mov %eax,4(%esp) + fldt 4(%esp) + fmulp + ret +1: fildl 16(%esp) + fldt 4(%esp) + fscale + fstp %st(1) + ret |