summaryrefslogtreecommitdiffstats
path: root/mdk-stage1/dietlibc/i386/libm2.S
diff options
context:
space:
mode:
Diffstat (limited to 'mdk-stage1/dietlibc/i386/libm2.S')
-rw-r--r--mdk-stage1/dietlibc/i386/libm2.S643
1 files changed, 0 insertions, 643 deletions
diff --git a/mdk-stage1/dietlibc/i386/libm2.S b/mdk-stage1/dietlibc/i386/libm2.S
deleted file mode 100644
index 91c4437cd..000000000
--- a/mdk-stage1/dietlibc/i386/libm2.S
+++ /dev/null
@@ -1,643 +0,0 @@
-.text
-#d.half:
-# .long 0x3f000000 # 1/2
-#d.log1p:
-# .long 0x3ed413cc # < sqrt(2)-1-2^(-25)
-
-.global fabsf,fabs,fabsl
- .type fabsf,@function
- .type fabs,@function
- .type fabsl,@function
-fabsf:
- flds 4(%esp)
- fabs
- ret
-fabs:
- fldl 4(%esp)
- fabs
- ret
-fabsl:
- fldt 4(%esp)
- fabs
- ret
-
-.global sincosf,sincos,sincosl
-.type sincosf,@function
-.type sincos,@function
-.type sincosl,@function
-# void sincos ( double x, double* sinx, double* cosx );
-
-sincosf:
- flds 4(%esp)
- call __fmod2pi
- movl 12(%esp),%eax
- movl 8(%esp),%ecx
- fsincos
- fstps (%eax)
- fstps (%ecx)
- ret
-sincos:
- fldl 4(%esp)
- call __fmod2pi
- movl 16(%esp),%eax
- movl 12(%esp),%ecx
- fsincos
- fstpl (%eax)
- fstpl (%ecx)
- ret
-sincosl:
- fldt 4(%esp)
- call __fmod2pi
- movl 20(%esp),%eax
- movl 16(%esp),%ecx
- fsincos
- fstpt (%eax)
- fstpt (%ecx)
- ret
-
-.global tanf,tan,tanl
-.type tanf,@function
-.type tan,@function
-.type tanl,@function
-tanf:
- flds 4(%esp)
- jmp __tan
-tan:
- fldl 4(%esp)
-__tan:
- call __fmod2pi
- fsincos
- fdivrp
- ret
-tanl:
- fldt 4(%esp)
- jmp __tan
-
-.global atan2f,atan2,atan2l
- .type atan2f,@function
- .type atan2,@function
- .type atan2l,@function
-atan2f:
- flds 4(%esp)
- flds 8(%esp)
- fpatan
- ret
-atan2l:
- fldt 4(%esp)
- fldt 16(%esp)
- fpatan
- ret
-atan2:
- fldl 4(%esp)
- fldl 12(%esp)
- fpatan
- ret
-
-.global cbrtf,cbrt,cbrtl
- .type cbrtf,@function
- .type cbrt,@function
- .type cbrtl,@function
-cbrtf:
- flds 4(%esp)
- jmp __cbrt
-cbrtl:
- fldt 4(%esp)
- jmp __cbrt
-cbrt:
- fldl 4(%esp)
-# fldt 1/3
-__cbrt:
- pushl $0x00003ffd # yes, this method of loading 1/3
- pushl $0xaaaaaaaa # is shorter than keeping the data
- pushl $0xaaaaaaab # separate
- fldt (%esp)
- addl $12,%esp
- fxch # st(0)=x, st(1)=1/3
- ftst
- fstsw %ax
- sahf
- jz 1f
- jnc finpow
- fchs
- call finpow
- fchs
-1: ret
-
-# x^y; st(0)=x, st(1)=y (x > 0)
-finpow:
- fyl2x
- jmp __finexp
-
-.global exp2f,exp2,exp2l
- .type exp2f,@function
- .type exp2,@function
- .type exp2l,@function
-exp2f:
- flds 4(%esp)
- jmp __finexp
-exp2:
- fldl 4(%esp)
- jmp __finexp
-exp2l:
- fldt 4(%esp)
- jmp __finexp
-
-.global exp10f,exp10,exp10l #,pow10f,pow10,pow10l
- .type exp10f,@function
- .type exp10,@function
- .type exp10l,@function
-# .type pow10f,@function
-# .type pow10,@function
-# .type pow10l,@function
-exp10f:
-#pow10f:
- fldl2t
- fmuls 4(%esp)
- jmp __finexp
-exp10:
-#pow10:
- fldl2t
- fmull 4(%esp)
- jmp __finexp
-exp10l:
-#pow10l:
- fldl2t
- fldt 4(%esp)
- fmulp
- jmp __finexp
-
-# exp(x)-1
-.global expm1f,expm1,expm1l
- .type expm1f,@function
- .type expm1,@function
- .type expm1l,@function
-expm1f:
- fldl2e
- fmuls 4(%esp)
- jmp finem1
-expm1l:
- fldl2e
- fldt 4(%esp)
- fmulp
- jmp finem1
-expm1:
- fldl2e
- fmull 4(%esp)
-# -1 <= st <= 1 ?
-finem1:
- fst %st(1) # st(1)=st(0)
- fabs
- fld1
- fcompp
- fstsw %ax
- sahf
-# |x| >= 1
- jc 1f
- f2xm1
- ret
-1: call __finexp
- fld1
- fsubrp
- ret
-
-# sinh(x)=(exp(x)-exp(-x))/2
-# cosh(x)=(exp(x)+exp(-x))/2
-# tanh(x)=sinh(x)/cosh(x)
-.global sinhf,sinh,sinhl
- .type sinhf,@function
- .type sinh,@function
- .type sinhl,@function
-sinhf:
- fldl2e
- fmuls 4(%esp)
- jmp finsinh
-sinh:
- fldl2e
- fmull 4(%esp)
-finsinh:
- call __finexp
- fld1
- fdiv %st(1),%st(0) # st(0)=1/exp(x), st(1)=exp(x)
- fsubrp %st(0),%st(1)
- pushl $0x3f000000 # 1/2
- flds (%esp)
- popl %eax
- fmulp
- ret
-
-sinhl:
- fldl2e
- fldt 4(%esp)
- fmulp
- jmp finsinh
-
-.global coshf,cosh,coshl
- .type coshf,@function
- .type cosh,@function
- .type coshl,@function
-coshf:
- fldl2e
- fmuls 4(%esp)
- jmp fincosh
-cosh:
- fldl2e
- fmull 4(%esp)
-fincosh:
- call __finexp
- fld1
- fdiv %st(1),%st(0) # st(0)=1/exp(x), st(1)=exp(x)
- faddp %st,%st(1)
- pushl $0x3f000000 # 1/2
- flds (%esp)
- popl %eax
- fmulp
- ret
-
-coshl:
- fldl2e
- fldt 4(%esp)
- fmulp
- jmp fincosh
-
-.global tanhf,tanh,tanhl
- .type tanhf,@function
- .type tanh,@function
- .type tanhl,@function
-tanhf:
- fldl2e
- fmuls 4(%esp)
- call __finexp
- jmp fintanh
-tanh:
- fldl2e
- fmull 4(%esp)
- call __finexp
-fintanh:
- fld1
- fdiv %st(1),%st # st(0)=1/exp(x), st(1)=exp(x)
- fst %st(2) # st(2)=1/exp(x)
- fadd %st(1),%st(0)
- fstp %st(3) # st(2)=exp(x)+exp(-x), st(1)=exp(-x), st(0)=exp(x)
- fsubp # st(1)=exp(x)+exp(-x), st(0)=exp(x)-exp(-x)
- fdivp
- ret
-
-tanhl:
- fldl2e
- fldt 4(%esp)
- fmulp
- call __finexp
- jmp fintanh
-
-.global hypotf,hypot,hypotl # ,__hypot
- .type hypotf,@function
- .type hypot,@function
- .type hypotl,@function
-# .type __hypot,@function
-hypotf:
- flds 8(%esp)
- flds 4(%esp)
- jmp __hypot
-hypotl:
- fldt 16(%esp)
- fldt 4(%esp)
- jmp __hypot
-hypot:
- fldl 12(%esp)
- fldl 4(%esp)
-__hypot:
- fmul %st(0),%st(0)
- fxch
- fmul %st(0),%st(0)
- faddp
- fsqrt
- ret
-
-.global log1pf,log1p,log1pl
- .type log1pf,@function
- .type log1p,@function
- .type log1pl,@function
-log1pf:
- flds 4(%esp)
- jmp __log1p
-log1pl:
- fldt 4(%esp)
- jmp __log1p
-log1p:
- fldl 4(%esp)
-__log1p:
-# Sprawdzenie zakresu parametru
- fst %st(1)
- pushl $0x3ed413cc # sqrt(2)-1-2^(-25)
- fabs
- flds (%esp)
- popl %eax
- fcompp # porownanie
- fstsw %ax
- fldln2
- fxch
- sahf
-# |x| >= sqrt(2)-1
- jc 1f
- fyl2xp1
- ret
-1: fld1 # x = x + 1
- faddp
- fyl2x
- ret
-
-.global log10f,log10,log10l
- .type log10f,@function
- .type log10,@function
- .type log10l,@function
-log10f:
- fldlg2
- flds 4(%esp)
- fyl2x
- ret
-log10l:
- fldlg2
- fldt 4(%esp)
- fyl2x
- ret
-log10:
- fldlg2
- fldl 4(%esp)
- fyl2x
- ret
-
-.global log2f,log2,log2l
- .type log2f,@function
- .type log2,@function
- .type log2l,@function
-log2f:
- fld1
- flds 4(%esp)
- fyl2x
- ret
-log2l:
- fld1
- fldt 4(%esp)
- fyl2x
- ret
-log2:
- fld1
- fldl 4(%esp)
- fyl2x
- ret
-
-.global fmaf,fma,fmal
- .type fmaf,@function
- .type fma,@function
- .type fmal,@function
-fmaf:
- flds 4(%esp)
- fmuls 8(%esp)
- fadds 12(%esp)
- ret
-fma:
- fldl 4(%esp)
- fmull 12(%esp)
- faddl 20(%esp)
- ret
-fmal:
- fldt 4(%esp)
- fldt 16(%esp)
- fmulp %st,%st(1)
- fldt 28(%esp)
- faddp %st,%st(1)
- ret
-
-.global asinhf,asinh,asinhl
- .type asinhf,@function
- .type asinh,@function
- .type asinhl,@function
-asinhf:
- flds 4(%esp)
- jmp __asinh
-asinh:
- fldl 4(%esp)
-__asinh:
- fld %st(0)
- fmul %st(0),%st(0)
- fld1
- faddp %st(0),%st(1)
-finasch:
- fsqrt
- faddp %st(0),%st(1)
- fldln2
- fxch
- fyl2x
- ret
-asinhl:
- fldt 4(%esp)
- jmp __asinh
-
-.global acoshf,acosh,acoshl
- .type acoshf,@function
- .type acosh,@function
- .type acoshl,@function
-acoshf:
- flds 4(%esp)
- jmp __acosh
-acosh:
- fldl 4(%esp)
-__acosh:
- fld %st(0)
- fmul %st(0),%st(0)
- fld1
- fsubrp %st(0),%st(1) # st1=st1-st0; pop
- jmp finasch
-acoshl:
- fldt 4(%esp)
- jmp __acosh
-
-.global atanhf,atanh,atanhl
- .type atanhf,@function
- .type atanh,@function
- .type atanhl,@function
-atanhf:
- flds 4(%esp)
- jmp __atanh
-atanh:
- fldl 4(%esp)
-__atanh:
- fst %st(1)
- fld1 # st0=1, st1=x, st2=x
- fadd %st(0),%st(2) # st0=1, st1=x, st2=x+1
- fsubp %st(0),%st(1) # st0=1-x, st1=x+1
- fdivrp %st(0),%st(1)
- fsqrt
- fldln2
- fxch
- fyl2x
- ret
-atanhl:
- fldt 4(%esp)
- jmp __atanh
-
-.global dremf,drem,dreml
- .type dremf,@function
- .type drem,@function
- .type dreml,@function
-dremf:
- flds 8(%esp) # y
- flds 4(%esp) # x
- jmp __drem
-drem:
- fldl 12(%esp)
- fldl 4(%esp)
-__drem:
- fprem1
- fstsw %ax
- sahf
- jp __drem
- ret
-
-dreml:
- fldt 16(%esp)
- fldt 4(%esp)
- jmp __drem
-
-# |ret| = |x|, sign(ret) = sign(y)
-.global copysignf,copysign,copysignl
- .type copysignf,@function
- .type copysign,@function
- .type copysignl,@function
-copysignf:
- flds 4(%esp) # x
- flds 8(%esp) # y
- jmp __copysign
-copysign:
- fldl 4(%esp)
- fldl 12(%esp)
-__copysign:
- fmul %st(1),%st # st = x*y
- ftst
- fstsw %ax
- fincstp
- sahf
- jnc 1f
- fchs
-1: ret
-
-copysignl:
- fldt 4(%esp)
- fldt 16(%esp)
- jmp __copysign
-
-.global fdimf,fdim,fdiml
- .type fdimf,@function
- .type fdim,@function
- .type fdiml,@function
-fdimf:
- flds 4(%esp)
- fsubl 12(%esp)
- jmp __fdim
-fdim:
- fldl 4(%esp)
- fsubl 12(%esp)
-__fdim:
- fstsw %ax
- sahf
- jnc 1f
- fldz
-1: ret
-fdiml:
- fldt 4(%esp)
- fldt 16(%esp)
- fsubp
- jmp __fdim
-
-
-.global truncf,trunc,truncl
- .type truncf,@function
- .type trunc,@function
- .type truncl,@function
-
-truncf:
- flds 4(%esp)
- movb $0x0c,%ah
- jmp __flcetr
-
-trunc:
- fldl 4(%esp)
- movb $0x0c,%ah
- jmp __flcetr
-
-truncl:
- fldt 4(%esp)
- movb $0x0c,%ah
- jmp __flcetr
-
-.global frexpf,frexp,frexpl
- .type frexpf,@function
- .type frexp,@function
- .type frexpl,@function
-
-frexpf:
- flds 4(%esp)
- movl 8(%esp),%eax
- jmp __frexp
-
-frexp:
- fldl 4(%esp)
- movl 12(%esp),%eax
-__frexp:
- fxtract
- fxch
- fistpl (%eax)
- pushl $0x3f000000 # 1/2
- fmuls (%esp)
- incl (%eax)
- popl %eax
- ret
-
-frexpl:
- fldt 4(%esp)
- movl 16(%esp),%eax
- jmp __frexp
-
-.global logbf,logb,logbl
- .type logbf,@function
- .type logb,@function
- .type logbl,@function
-
-#logbf: flds 4(%esp)
-# fxtract
-# fxch
-# ret
-
-#logb: fldl 4(%esp)
-# fxtract
-# fxch
-# ret
-
-#logbl: fldt 4(%esp)
-# fxtract
-# fxch
-# ret
-
-.global ilogbf,ilogb,ilogbl
- .type ilogbf,@function
- .type ilogb,@function
- .type ilogbl,@function
-
-logbf:
-ilogbf: flds 4(%esp)
- jmp __ilogb
-
-logb:
-ilogb: fldl 4(%esp)
-__ilogb:
- fxtract
- pushl %eax
- fxch
- fistl (%esp)
- popl %eax
- ret
-
-logbl:
-ilogbl: fldt 4(%esp)
- jmp __ilogb
-