Index: src/compiler/bytecode-graph-builder.cc |
diff --git a/src/compiler/bytecode-graph-builder.cc b/src/compiler/bytecode-graph-builder.cc |
index c6dea858f572a9f7d5d96405fa01588abf6d6455..5e63b599424be223e6bb66b1b568f66113734473 100644 |
--- a/src/compiler/bytecode-graph-builder.cc |
+++ b/src/compiler/bytecode-graph-builder.cc |
@@ -1096,6 +1096,25 @@ void BytecodeGraphBuilder::VisitCallRuntimeForPairWide() { |
BuildCallRuntimeForPair(); |
} |
+void BytecodeGraphBuilder::BuildInvokeIntrinsic() { |
+ FrameStateBeforeAndAfter states(this); |
+ Runtime::FunctionId functionId = |
+ static_cast<Runtime::FunctionId>(bytecode_iterator().GetIndexOperand(0)); |
+ interpreter::Register first_arg = bytecode_iterator().GetRegisterOperand(1); |
+ int arg_count = bytecode_iterator().GetRegisterCountOperand(2); |
+ |
+ // Create node to perform the runtime call. |
+ const Operator* call = javascript()->CallRuntime(functionId, arg_count); |
+ Node* value = ProcessCallRuntimeArguments(call, first_arg, arg_count); |
+ environment()->BindAccumulator(value, &states); |
+} |
+ |
+void BytecodeGraphBuilder::VisitInvokeIntrinsic() { BuildInvokeIntrinsic(); } |
+ |
+void BytecodeGraphBuilder::VisitInvokeIntrinsicWide() { |
+ BuildInvokeIntrinsic(); |
+} |
+ |
Node* BytecodeGraphBuilder::ProcessCallNewArguments( |
const Operator* call_new_op, Node* callee, Node* new_target, |
interpreter::Register first_arg, size_t arity) { |