From 8568369a26510b61db639f55142797385e59abcb Mon Sep 17 00:00:00 2001 From: Alon Zakai Date: Thu, 5 Nov 2015 13:54:57 -0800 Subject: negative zero --- src/wasm-interpreter.h | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'src/wasm-interpreter.h') diff --git a/src/wasm-interpreter.h b/src/wasm-interpreter.h index 2ac461a93..21d6fbd9f 100644 --- a/src/wasm-interpreter.h +++ b/src/wasm-interpreter.h @@ -346,8 +346,14 @@ public: case Mul: return Flow(Literal(l * r)); case Div: return Flow(Literal(l / r)); case CopySign: return Flow(Literal(std::copysign(l, r))); - case Min: return Flow(Literal(std::min(l, r))); - case Max: return Flow(Literal(std::max(l, r))); + case Min: { + if (l == r && l == 0) return Literal(1/l < 0 ? l : r); + return Literal(std::min(l, r)); + } + case Max: { + if (l == r && l == 0) return Literal(1/l < 0 ? r : l); + return Literal(std::max(l, r)); + } default: abort(); } } else if (left.type == f64) { -- cgit v1.2.3