Chromium Code Reviews| 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 = |