summaryrefslogtreecommitdiffstats
path: root/mdk-stage1/dietlibc/i386/exp2.S
diff options
context:
space:
mode:
authorMystery Man <unknown@mandriva.org>2003-08-20 07:37:27 +0000
committerMystery Man <unknown@mandriva.org>2003-08-20 07:37:27 +0000
commit7f2ac73888b8ef372ea597049981b27e7d810ac2 (patch)
tree354132889b63bbe5f446cb82869b3c3367135a80 /mdk-stage1/dietlibc/i386/exp2.S
parent327bd24f8e4291bd1882de1990dd7339f781a9cb (diff)
downloaddrakx-7f2ac73888b8ef372ea597049981b27e7d810ac2.tar
drakx-7f2ac73888b8ef372ea597049981b27e7d810ac2.tar.gz
drakx-7f2ac73888b8ef372ea597049981b27e7d810ac2.tar.bz2
drakx-7f2ac73888b8ef372ea597049981b27e7d810ac2.tar.xz
drakx-7f2ac73888b8ef372ea597049981b27e7d810ac2.zip
This commit was manufactured by cvs2svn to create branch 'MDKC_1_0'.topic/MDKC_1_0
Diffstat (limited to 'mdk-stage1/dietlibc/i386/exp2.S')
-rw-r--r--mdk-stage1/dietlibc/i386/exp2.S18
1 files changed, 18 insertions, 0 deletions
diff --git a/mdk-stage1/dietlibc/i386/exp2.S b/mdk-stage1/dietlibc/i386/exp2.S
new file mode 100644
index 000000000..d5389a22e
--- /dev/null
+++ b/mdk-stage1/dietlibc/i386/exp2.S
@@ -0,0 +1,18 @@
+.text
+.type exp2,@function
+.global exp2
+exp2: # note: exp2(x) = 2^x
+ fldl 4(%esp) # x
+ fld %st(0) # x x
+ frndint # int(x) x
+ fxch # x int(x)
+ fsub %st(1),%st(0) # frac(x) int(x)
+ f2xm1 # 2^(fract(x))-1 int(x)
+ fld1 # 1 2^(fract(x))-1 int(x)
+ faddp %st(0),%st(1) # 2^(fract(x)) int(x)
+ fscale # 2^x int(x)
+ fstp %st(1) # 2^x
+ ret
+
+.ende:
+.size exp2,.ende-exp2