aboutsummaryrefslogtreecommitdiffstats
path: root/com32/lib/math/pow.S
diff options
context:
space:
mode:
Diffstat (limited to 'com32/lib/math/pow.S')
-rw-r--r--com32/lib/math/pow.S25
1 files changed, 25 insertions, 0 deletions
diff --git a/com32/lib/math/pow.S b/com32/lib/math/pow.S
new file mode 100644
index 00000000..5a124aba
--- /dev/null
+++ b/com32/lib/math/pow.S
@@ -0,0 +1,25 @@
+#
+# pow.S
+#
+# double pow(double base, double exponent)
+#
+
+ .text
+ .globl pow
+ .type pow,@function
+pow:
+ fldl 12(%esp)
+ fldl 4(%esp)
+ fyl2x
+ fld %st(0)
+ frndint
+ fsubr %st,%st(1)
+ fxch %st(1)
+ f2xm1
+ fld1
+ faddp %st,%st(1)
+ fscale
+ fstp %st(1)
+ ret
+
+ .size pow,.-pow