musl - musl - an implementation of the standard library for Linux-based systems

index : musl
musl - an implementation of the standard library for Linux-based systems
summary refs log tree commit diff
diff options
context:
space:
mode:
Diffstat
-rw-r--r--src/math/i386/scalbn.s 19
-rw-r--r--src/math/i386/scalbnf.s 18
-rw-r--r--src/math/i386/scalbnl.s 16
3 files changed, 46 insertions, 7 deletions
diff --git a/src/math/i386/scalbn.s b/src/math/i386/scalbn.s
index e275d14f..8bf302f2 100644
--- a/src/math/i386/scalbn.s
+++ b/src/math/i386/scalbn.s
@@ -11,10 +11,23 @@ scalbln:
.global scalbn
.type scalbn,@function
scalbn:
- fildl 12(%esp)
+ mov 12(%esp),%eax
+ add 0ドルx3ffe,%eax
+ cmp 0ドルx7ffd,%eax
+ jb 1f
+ sub 0ドルx3ffe,%eax
+ sar 31,ドル%eax
+ xor 0ドルxfff,%eax
+ add 0ドルx3ffe,%eax
+1: inc %eax
fldl 4(%esp)
- fscale
- fstp %st(1)
+ mov %eax,12(%esp)
+ mov 0ドルx80000000,%eax
+ mov %eax,8(%esp)
+ xor %eax,%eax
+ mov %eax,4(%esp)
+ fldt 4(%esp)
+ fmulp
fstpl 4(%esp)
fldl 4(%esp)
ret
diff --git a/src/math/i386/scalbnf.s b/src/math/i386/scalbnf.s
index 40232b6a..9cb9ef5f 100644
--- a/src/math/i386/scalbnf.s
+++ b/src/math/i386/scalbnf.s
@@ -11,10 +11,22 @@ scalblnf:
.global scalbnf
.type scalbnf,@function
scalbnf:
- fildl 8(%esp)
+ mov 8(%esp),%eax
+ add 0ドルx3fe,%eax
+ cmp 0ドルx7fd,%eax
+ jb 1f
+ sub 0ドルx3fe,%eax
+ sar 31,ドル%eax
+ xor 0ドルx1ff,%eax
+ add 0ドルx3fe,%eax
+1: inc %eax
+ shl 20,ドル%eax
flds 4(%esp)
- fscale
- fstp %st(1)
+ mov %eax,8(%esp)
+ xor %eax,%eax
+ mov %eax,4(%esp)
+ fldl 4(%esp)
+ fmulp
fstps 4(%esp)
flds 4(%esp)
ret
diff --git a/src/math/i386/scalbnl.s b/src/math/i386/scalbnl.s
index 224b1bef..54414c2e 100644
--- a/src/math/i386/scalbnl.s
+++ b/src/math/i386/scalbnl.s
@@ -11,7 +11,21 @@ scalblnl:
.global scalbnl
.type scalbnl,@function
scalbnl:
- fildl 16(%esp)
+ mov 16(%esp),%eax
+ add 0ドルx3ffe,%eax
+ cmp 0ドルx7ffd,%eax
+ jae 1f
+ inc %eax
+ fldt 4(%esp)
+ mov %eax,12(%esp)
+ mov 0ドルx80000000,%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)
generated by cgit v1.2.1 (git 2.18.0) at 2025年09月20日 23:20:36 +0000

AltStyle によって変換されたページ (->オリジナル) /