diff options
Diffstat (limited to 'src/wasm2js.h')
-rw-r--r-- | src/wasm2js.h | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/wasm2js.h b/src/wasm2js.h index 7dd6c4a41..5adcdb740 100644 --- a/src/wasm2js.h +++ b/src/wasm2js.h @@ -1464,6 +1464,22 @@ Ref Wasm2JSBuilder::processFunctionBody(Module* m, TRSHIFT, ValueBuilder::makeNum(0)); } + case ExtendS8Int32: { + return ValueBuilder::makeBinary( + ValueBuilder::makeBinary(visit(curr->value, EXPRESSION_RESULT), + LSHIFT, + ValueBuilder::makeNum(24)), + RSHIFT, + ValueBuilder::makeNum(24)); + } + case ExtendS16Int32: { + return ValueBuilder::makeBinary( + ValueBuilder::makeBinary(visit(curr->value, EXPRESSION_RESULT), + LSHIFT, + ValueBuilder::makeNum(16)), + RSHIFT, + ValueBuilder::makeNum(16)); + } default: { std::cerr << "Unhandled unary i32 operator: " << curr << std::endl; |