summaryrefslogtreecommitdiff
path: root/src/wasm-interpreter.h
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2015-12-23 16:19:57 -0800
committerAlon Zakai <alonzakai@gmail.com>2015-12-23 16:20:08 -0800
commita8f29286f99b8cde3dbb4656d5ac24a0ec2bdf5c (patch)
tree0873feb805a1d24a90029c3b45cc38e957267f0a /src/wasm-interpreter.h
parent5ae3515596921ca5721a540d9aeb74fdf1af87ae (diff)
downloadbinaryen-a8f29286f99b8cde3dbb4656d5ac24a0ec2bdf5c.tar.gz
binaryen-a8f29286f99b8cde3dbb4656d5ac24a0ec2bdf5c.tar.bz2
binaryen-a8f29286f99b8cde3dbb4656d5ac24a0ec2bdf5c.zip
ensure proper literal type for popcnt results
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 7752f5356..012c1c347 100644
--- a/src/wasm-interpreter.h
+++ b/src/wasm-interpreter.h
@@ -368,7 +368,7 @@ private:
if (v == 0) return Literal(32);
return Literal(CountTrailingZeroes((uint32_t)v));
}
- case Popcnt: return Literal(PopCount((uint32_t)v));
+ case Popcnt: return Literal((int32_t)PopCount((uint32_t)v));
case ReinterpretInt: {
float v = value.reinterpretf32();
if (isnan(v)) {
@@ -397,7 +397,7 @@ private:
if (low == 0) return Literal(32+(int64_t)CountTrailingZeroes((uint32_t)high));
return Literal((int64_t)CountTrailingZeroes((uint32_t)low));
}
- case Popcnt: return Literal(PopCount((uint64_t)v));
+ case Popcnt: return Literal((int64_t)PopCount((uint64_t)v));
case WrapInt64: return Literal(int32_t(value.geti64()));
case ReinterpretInt: {
return Literal(value.reinterpretf64());