diff options
Diffstat (limited to 'src/wasm2js.h')
-rw-r--r-- | src/wasm2js.h | 31 |
1 files changed, 15 insertions, 16 deletions
diff --git a/src/wasm2js.h b/src/wasm2js.h index ac0268e5b..8418d5b15 100644 --- a/src/wasm2js.h +++ b/src/wasm2js.h @@ -1321,8 +1321,8 @@ Ref Wasm2JSBuilder::processFunctionBody(Module* m, !FindAll<Call>(curr->value).list.empty() || !FindAll<CallIndirect>(curr->ptr).list.empty() || !FindAll<CallIndirect>(curr->value).list.empty() || - !FindAll<Host>(curr->ptr).list.empty() || - !FindAll<Host>(curr->value).list.empty()) { + !FindAll<MemoryGrow>(curr->ptr).list.empty() || + !FindAll<MemoryGrow>(curr->value).list.empty()) { Ref ret; ScopedTemp ptr(Type::i32, parent, func); sequenceAppend(ret, visitAndAssign(curr->ptr, ptr)); @@ -1842,21 +1842,20 @@ Ref Wasm2JSBuilder::processFunctionBody(Module* m, return ValueBuilder::makeReturn(val); } - Ref visitHost(Host* curr) { - if (curr->op == HostOp::MemoryGrow) { - if (module->memory.exists && - module->memory.max > module->memory.initial) { - return ValueBuilder::makeCall( - WASM_MEMORY_GROW, - makeAsmCoercion(visit(curr->operands[0], EXPRESSION_RESULT), - wasmToAsmType(curr->operands[0]->type))); - } else { - return ValueBuilder::makeCall(ABORT_FUNC); - } - } else if (curr->op == HostOp::MemorySize) { - return ValueBuilder::makeCall(WASM_MEMORY_SIZE); + Ref visitMemorySize(MemorySize* curr) { + return ValueBuilder::makeCall(WASM_MEMORY_SIZE); + } + + Ref visitMemoryGrow(MemoryGrow* curr) { + if (module->memory.exists && + module->memory.max > module->memory.initial) { + return ValueBuilder::makeCall( + WASM_MEMORY_GROW, + makeAsmCoercion(visit(curr->delta, EXPRESSION_RESULT), + wasmToAsmType(curr->delta->type))); + } else { + return ValueBuilder::makeCall(ABORT_FUNC); } - WASM_UNREACHABLE("unexpected expr type"); // TODO } Ref visitNop(Nop* curr) { return ValueBuilder::makeToplevel(); } |