summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2015-12-07 15:38:27 -0800
committerAlon Zakai <alonzakai@gmail.com>2015-12-07 15:38:27 -0800
commit4ef7b2ef49787bc22a73a13b24819a43d7d133d6 (patch)
treea945c8ef648e340ac474d00e729fb8359745566f /src
parentaa3adeff8a9052e82db4353cd7d77e4da64e9a9d (diff)
downloadbinaryen-4ef7b2ef49787bc22a73a13b24819a43d7d133d6.tar.gz
binaryen-4ef7b2ef49787bc22a73a13b24819a43d7d133d6.tar.bz2
binaryen-4ef7b2ef49787bc22a73a13b24819a43d7d133d6.zip
fix signed int-to-double
Diffstat (limited to 'src')
-rw-r--r--src/wasm2asm.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/wasm2asm.h b/src/wasm2asm.h
index ba52b1878..c48834085 100644
--- a/src/wasm2asm.h
+++ b/src/wasm2asm.h
@@ -892,7 +892,7 @@ Ref Wasm2AsmBuilder::processFunctionBody(Expression* curr, IString result) {
case Sqrt: ret = ValueBuilder::makeCall(MATH_SQRT, value); break;
case TruncSFloat32: ret = ValueBuilder::makePrefix(B_NOT, ValueBuilder::makePrefix(B_NOT, value)); break;
case PromoteFloat32:
- case ConvertSInt32: ret = ValueBuilder::makePrefix(PLUS, value); break;
+ case ConvertSInt32: ret = ValueBuilder::makePrefix(PLUS, ValueBuilder::makeBinary(value, OR, ValueBuilder::makeNum(0))); break;
case ConvertUInt32: ret = ValueBuilder::makePrefix(PLUS, ValueBuilder::makeBinary(value, TRSHIFT, ValueBuilder::makeNum(0))); break;
case DemoteFloat64: ret = value; break;
default: std::cerr << curr << '\n'; abort();