summaryrefslogtreecommitdiff
path: root/chromium/v8/src/wasm/function-body-decoder.cc
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2018-05-03 13:42:47 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2018-05-15 10:27:51 +0000
commit8c5c43c7b138c9b4b0bf56d946e61d3bbc111bec (patch)
treed29d987c4d7b173cf853279b79a51598f104b403 /chromium/v8/src/wasm/function-body-decoder.cc
parent830c9e163d31a9180fadca926b3e1d7dfffb5021 (diff)
downloadqtwebengine-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.cc23
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;
}