Index: src/compiler/bytecode-graph-builder.cc |
diff --git a/src/compiler/bytecode-graph-builder.cc b/src/compiler/bytecode-graph-builder.cc |
index e28c19d84426d1932c04fca02ca829a808102fc0..493019064a45a86a66e8ff8e57600d89a7506595 100644 |
--- a/src/compiler/bytecode-graph-builder.cc |
+++ b/src/compiler/bytecode-graph-builder.cc |
@@ -1428,6 +1428,25 @@ void BytecodeGraphBuilder::VisitReturn() { |
MergeControlToLeaveFunction(control); |
} |
+void BytecodeGraphBuilder::BuildInvokeIntrinsic() { |
rmcilroy
2016/03/08 11:19:30
nit - move up below VisitCallRuntimeForPairWide
epertoso
2016/03/08 14:11:09
Done.
|
+ 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(); |
+} |
+ |
void BytecodeGraphBuilder::VisitDebugger() { |
FrameStateBeforeAndAfter states(this); |
Node* call = |