From 473ea1f21189c413ebc81f3f4d5b75ab3064ef8c Mon Sep 17 00:00:00 2001 From: Alon Zakai Date: Fri, 4 Dec 2015 22:20:00 -0800 Subject: more unaries in wasm2asm --- src/wasm2asm.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src') 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); -- cgit v1.2.3