summaryrefslogtreecommitdiff
path: root/src/wasm2asm.h
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2015-12-04 22:20:00 -0800
committerAlon Zakai <alonzakai@gmail.com>2015-12-04 22:22:17 -0800
commit473ea1f21189c413ebc81f3f4d5b75ab3064ef8c (patch)
tree6e1b4c71323d002e2b83573d75d953b32d3d729a /src/wasm2asm.h
parentbaf52c53ae9af1f55012e4b31ea6c32aeb639c86 (diff)
downloadbinaryen-473ea1f21189c413ebc81f3f4d5b75ab3064ef8c.tar.gz
binaryen-473ea1f21189c413ebc81f3f4d5b75ab3064ef8c.tar.bz2
binaryen-473ea1f21189c413ebc81f3f4d5b75ab3064ef8c.zip
more unaries in wasm2asm
Diffstat (limited to 'src/wasm2asm.h')
-rw-r--r--src/wasm2asm.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/wasm2asm.h b/src/wasm2asm.h
index a023b3aaf..6ea050538 100644
--- a/src/wasm2asm.h
+++ b/src/wasm2asm.h
@@ -679,8 +679,11 @@ Ref Wasm2AsmBuilder::processFunctionBody(Expression* curr, IString result) {
case Nearest: ret = ValueBuilder::makeCall(MATH_NEAREST, value); break;
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;
- default: std::cerr << curr->op << '\n'; abort();
+ case ConvertUInt32: ret = ValueBuilder::makePrefix(PLUS, ValueBuilder::makeBinary(value, TRSHIFT, ValueBuilder::makeNum(0))); break;
+ case DemoteFloat64: break;
+ default: std::cerr << curr << '\n'; abort();
}
if (curr->type == f32) { // doubles need much less coercing
return makeAsmCoercion(ret, ASM_FLOAT);