diff options
Diffstat (limited to 'sys/src/libc/power/vlrt.c')
| -rw-r--r-- | sys/src/libc/power/vlrt.c | 37 |
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) { |
