asm for scalbn family
unlike some implementations, these functions perform the equivalent of gcc's -ffloat-store on the result before returning. this is necessary to raise underflow/overflow/inexact exceptions, perform the correct rounding with denormals, etc.
This commit is contained in:
@@ -0,0 +1 @@
|
||||
# see scalbn.s
|
||||
@@ -0,0 +1 @@
|
||||
# see scalbnf.s
|
||||
@@ -0,0 +1 @@
|
||||
# see scalbnl.s
|
||||
@@ -0,0 +1 @@
|
||||
# see scalbn.s
|
||||
@@ -0,0 +1 @@
|
||||
# see scalbnf.s
|
||||
@@ -0,0 +1 @@
|
||||
# see scalbnl.s
|
||||
@@ -0,0 +1,20 @@
|
||||
.global ldexp
|
||||
.type ldexp,@function
|
||||
ldexp:
|
||||
nop
|
||||
|
||||
.global scalbln
|
||||
.type scalbln,@function
|
||||
scalbln:
|
||||
nop
|
||||
|
||||
.global scalbn
|
||||
.type scalbn,@function
|
||||
scalbn:
|
||||
fildl 12(%esp)
|
||||
fldl 4(%esp)
|
||||
fscale
|
||||
fstp %st(1)
|
||||
fstpl 4(%esp)
|
||||
fldl 4(%esp)
|
||||
ret
|
||||
@@ -0,0 +1,20 @@
|
||||
.global ldexpf
|
||||
.type ldexpf,@function
|
||||
ldexpf:
|
||||
nop
|
||||
|
||||
.global scalblnf
|
||||
.type scalblnf,@function
|
||||
scalblnf:
|
||||
nop
|
||||
|
||||
.global scalbnf
|
||||
.type scalbnf,@function
|
||||
scalbnf:
|
||||
fildl 8(%esp)
|
||||
flds 4(%esp)
|
||||
fscale
|
||||
fstp %st(1)
|
||||
fstps 4(%esp)
|
||||
flds 4(%esp)
|
||||
ret
|
||||
@@ -0,0 +1,18 @@
|
||||
.global ldexpl
|
||||
.type ldexpl,@function
|
||||
ldexpl:
|
||||
nop
|
||||
|
||||
.global scalblnl
|
||||
.type scalblnl,@function
|
||||
scalblnl:
|
||||
nop
|
||||
|
||||
.global scalbnl
|
||||
.type scalbnl,@function
|
||||
scalbnl:
|
||||
fildl 16(%esp)
|
||||
fldt 4(%esp)
|
||||
fscale
|
||||
fstp %st(1)
|
||||
ret
|
||||
Reference in New Issue
Block a user