diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2018-05-03 13:42:47 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2018-05-15 10:27:51 +0000 |
commit | 8c5c43c7b138c9b4b0bf56d946e61d3bbc111bec (patch) | |
tree | d29d987c4d7b173cf853279b79a51598f104b403 /chromium/v8/src/wasm/function-body-decoder.cc | |
parent | 830c9e163d31a9180fadca926b3e1d7dfffb5021 (diff) | |
download | qtwebengine-chromium-8c5c43c7b138c9b4b0bf56d946e61d3bbc111bec.tar.gz |
BASELINE: Update Chromium to 66.0.3359.156
Change-Id: I0c9831ad39911a086b6377b16f995ad75a51e441
Reviewed-by: Michal Klocek <michal.klocek@qt.io>
Diffstat (limited to 'chromium/v8/src/wasm/function-body-decoder.cc')
-rw-r--r-- | chromium/v8/src/wasm/function-body-decoder.cc | 23 |
1 files changed, 11 insertions, 12 deletions
diff --git a/chromium/v8/src/wasm/function-body-decoder.cc b/chromium/v8/src/wasm/function-body-decoder.cc index 57ee78f91cf..217a5ff3b1a 100644 --- a/chromium/v8/src/wasm/function-body-decoder.cc +++ b/chromium/v8/src/wasm/function-body-decoder.cc @@ -369,13 +369,13 @@ class WasmGraphBuildingInterface { void CallDirect(Decoder* decoder, const CallFunctionOperand<validate>& operand, const Value args[], Value returns[]) { - DoCall(decoder, nullptr, operand, args, returns, false); + DoCall(decoder, nullptr, operand.sig, operand.index, args, returns); } void CallIndirect(Decoder* decoder, const Value& index, const CallIndirectOperand<validate>& operand, const Value args[], Value returns[]) { - DoCall(decoder, index.node, operand, args, returns, true); + DoCall(decoder, index.node, operand.sig, operand.sig_index, args, returns); } void SimdOp(Decoder* decoder, WasmOpcode opcode, Vector<Value> args, @@ -782,30 +782,29 @@ class WasmGraphBuildingInterface { return result; } - template <typename Operand> void DoCall(WasmFullDecoder<validate, WasmGraphBuildingInterface>* decoder, - TFNode* index_node, const Operand& operand, const Value args[], - Value returns[], bool is_indirect) { - int param_count = static_cast<int>(operand.sig->parameter_count()); + TFNode* index_node, FunctionSig* sig, uint32_t index, + const Value args[], Value returns[]) { + int param_count = static_cast<int>(sig->parameter_count()); TFNode** arg_nodes = builder_->Buffer(param_count + 1); TFNode** return_nodes = nullptr; arg_nodes[0] = index_node; for (int i = 0; i < param_count; ++i) { arg_nodes[i + 1] = args[i].node; } - if (is_indirect) { - builder_->CallIndirect(operand.index, arg_nodes, &return_nodes, + if (index_node) { + builder_->CallIndirect(index, arg_nodes, &return_nodes, decoder->position()); } else { - builder_->CallDirect(operand.index, arg_nodes, &return_nodes, + builder_->CallDirect(index, arg_nodes, &return_nodes, decoder->position()); } - int return_count = static_cast<int>(operand.sig->return_count()); + int return_count = static_cast<int>(sig->return_count()); for (int i = 0; i < return_count; ++i) { returns[i].node = return_nodes[i]; } // The invoked function could have used grow_memory, so we need to - // reload mem_size and mem_start + // reload mem_size and mem_start. LoadContextIntoSsa(ssa_env_); } }; @@ -1002,7 +1001,7 @@ bool PrintRawWasmCode(AccountingAllocator* allocator, const FunctionBody& body, } case kExprCallIndirect: { CallIndirectOperand<Decoder::kNoValidate> operand(&i, i.pc()); - os << " // sig #" << operand.index; + os << " // sig #" << operand.sig_index; if (decoder.Complete(i.pc(), operand)) { os << ": " << *operand.sig; } |