diff --git a/src/math/i386/exp.s b/src/math/i386/exp.s new file mode 100644 index 0000000000000000000000000000000000000000..18f6cd67f6fbc5f24056ba6e9350ffdaec666092 --- /dev/null +++ b/src/math/i386/exp.s @@ -0,0 +1,46 @@ +.global exp2f +.type exp2f,@function +exp2f: + flds 4(%esp) + jmp 1f + +.global exp2l +.type exp2l,@function +exp2l: + fldt 4(%esp) + jmp 1f + +.global expf +.type expf,@function +expf: + flds 4(%esp) + jmp 2f + +.global expl +.type expl,@function +expl: + fldt 4(%esp) + jmp 2f + +.global exp +.type exp,@function +exp: + fldl 4(%esp) +2: fldl2e + fmulp + jmp 1f + +.global exp2 +.type exp2,@function +exp2: + fldl 4(%esp) +1: fld %st(0) + frndint + fxch %st(1) + fsub %st(1) + f2xm1 + fld1 + faddp + fscale + fstp %st(1) + ret diff --git a/src/math/i386/exp2.s b/src/math/i386/exp2.s new file mode 100644 index 0000000000000000000000000000000000000000..f335a3e5277ed7fe0c0eb8a2d5302dfd13c1e749 --- /dev/null +++ b/src/math/i386/exp2.s @@ -0,0 +1 @@ +# see exp.s diff --git a/src/math/i386/exp2f.s b/src/math/i386/exp2f.s new file mode 100644 index 0000000000000000000000000000000000000000..f335a3e5277ed7fe0c0eb8a2d5302dfd13c1e749 --- /dev/null +++ b/src/math/i386/exp2f.s @@ -0,0 +1 @@ +# see exp.s diff --git a/src/math/i386/exp2l.s b/src/math/i386/exp2l.s new file mode 100644 index 0000000000000000000000000000000000000000..f335a3e5277ed7fe0c0eb8a2d5302dfd13c1e749 --- /dev/null +++ b/src/math/i386/exp2l.s @@ -0,0 +1 @@ +# see exp.s diff --git a/src/math/i386/expf.s b/src/math/i386/expf.s new file mode 100644 index 0000000000000000000000000000000000000000..f335a3e5277ed7fe0c0eb8a2d5302dfd13c1e749 --- /dev/null +++ b/src/math/i386/expf.s @@ -0,0 +1 @@ +# see exp.s diff --git a/src/math/i386/expl.s b/src/math/i386/expl.s new file mode 100644 index 0000000000000000000000000000000000000000..f335a3e5277ed7fe0c0eb8a2d5302dfd13c1e749 --- /dev/null +++ b/src/math/i386/expl.s @@ -0,0 +1 @@ +# see exp.s diff --git a/src/math/i386/expm1.s b/src/math/i386/expm1.s new file mode 100644 index 0000000000000000000000000000000000000000..d6d511ef4689e3f0271d1cf67fa5dca6167f98d3 --- /dev/null +++ b/src/math/i386/expm1.s @@ -0,0 +1,36 @@ +.global expm1f +.type expm1f,@function +expm1f: + flds 4(%esp) + jmp 1f + +.global expm1l +.type expm1l,@function +expm1l: + fldt 4(%esp) + jmp 1f + +.global expm1 +.type expm1,@function +expm1: + fldl 4(%esp) +1: fldl2e + fmulp + fld %st(0) + frndint + fldz + fcompi + jnz 1f + fstp %st(0) + f2xm1 + ret +1: fxch %st(1) + fsub %st(1) + f2xm1 + fld1 + faddp + fscale + fld1 + fsubrp + fstp %st(1) + ret diff --git a/src/math/i386/expm1f.s b/src/math/i386/expm1f.s new file mode 100644 index 0000000000000000000000000000000000000000..89c2d290019de0e410bb1969a39bdb49a743b6fb --- /dev/null +++ b/src/math/i386/expm1f.s @@ -0,0 +1 @@ +# see expm1.s diff --git a/src/math/i386/expm1l.s b/src/math/i386/expm1l.s new file mode 100644 index 0000000000000000000000000000000000000000..89c2d290019de0e410bb1969a39bdb49a743b6fb --- /dev/null +++ b/src/math/i386/expm1l.s @@ -0,0 +1 @@ +# see expm1.s