summaryrefslogtreecommitdiff
path: root/src/wasm-interpreter.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/wasm-interpreter.h')
-rw-r--r--src/wasm-interpreter.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/wasm-interpreter.h b/src/wasm-interpreter.h
index 381176390..3fa83b863 100644
--- a/src/wasm-interpreter.h
+++ b/src/wasm-interpreter.h
@@ -412,7 +412,7 @@ private:
float ret;
switch (curr->op) {
case Neg: ret = -v; break;
- case Abs: ret = std::abs(v); break;
+ case Abs: return Literal(value.reinterpreti32() & 0x7fffffff).castToF32(); break; // operate on bits directly, to avoid signalling bit being set on a float
case Ceil: ret = std::ceil(v); break;
case Floor: ret = std::floor(v); break;
case Trunc: ret = std::trunc(v); break;
@@ -431,7 +431,7 @@ private:
double ret;
switch (curr->op) {
case Neg: ret = -v; break;
- case Abs: ret = std::abs(v); break;
+ case Abs: return Literal(value.reinterpreti64() & 0x7fffffffffffffffUL).castToF64(); break; // operate on bits directly, to avoid signalling bit being set on a float
case Ceil: ret = std::ceil(v); break;
case Floor: ret = std::floor(v); break;
case Trunc: ret = std::trunc(v); break;