summaryrefslogtreecommitdiff
path: root/sys/src/libc/power/vlrt.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/src/libc/power/vlrt.c')
-rw-r--r--sys/src/libc/power/vlrt.c37
1 files changed, 37 insertions, 0 deletions
diff --git a/sys/src/libc/power/vlrt.c b/sys/src/libc/power/vlrt.c
index 681a3b49b..e9fd3e8bf 100644
--- a/sys/src/libc/power/vlrt.c
+++ b/sys/src/libc/power/vlrt.c
@@ -99,6 +99,43 @@ _v2f(Vlong x)
return _v2d(x);
}
+double
+_uv2d(Vlong x)
+{
+ return x.hi*4294967296. + x.lo;
+}
+
+float
+_uv2f(Vlong x)
+{
+ return _uv2d(x);
+}
+
+void
+_vasaddd(Vlong *ret, Vlong *lv, double v2d(Vlong), double rv)
+{
+ _d2v(lv, v2d(*lv)+rv);
+ *ret = *lv;
+}
+void
+_vassubd(Vlong *ret, Vlong *lv, double v2d(Vlong), double rv)
+{
+ _d2v(lv, v2d(*lv)-rv);
+ *ret = *lv;
+}
+void
+_vasmuld(Vlong *ret, Vlong *lv, double v2d(Vlong), double rv)
+{
+ _d2v(lv, v2d(*lv)*rv);
+ *ret = *lv;
+}
+void
+_vasdivd(Vlong *ret, Vlong *lv, double v2d(Vlong), double rv)
+{
+ _d2v(lv, v2d(*lv)/rv);
+ *ret = *lv;
+}
+
void
_divvu(Vlong *q, Vlong n, Vlong d)
{