summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/wasm-interpreter.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/wasm-interpreter.h b/src/wasm-interpreter.h
index 0d32dcf52..9e4f38d1a 100644
--- a/src/wasm-interpreter.h
+++ b/src/wasm-interpreter.h
@@ -360,7 +360,9 @@ private:
if (value.type == i32) {
int32_t v = value.geti32();
switch (curr->op) {
- case Clz: return Literal(CountLeadingZeroes((uint32_t)v));
+ case Clz:
+ if (v == 0) return Literal(32);
+ return Literal(CountLeadingZeroes((uint32_t)v));
case Ctz: {
if (v == 0) return Literal(32);
return Literal(CountTrailingZeroes((uint32_t)v));