diff options
Diffstat (limited to 'deps/v8/src/compiler/code-assembler.cc')
-rw-r--r-- | deps/v8/src/compiler/code-assembler.cc | 39 |
1 files changed, 37 insertions, 2 deletions
diff --git a/deps/v8/src/compiler/code-assembler.cc b/deps/v8/src/compiler/code-assembler.cc index 1bde4c6a4c..19bb76b125 100644 --- a/deps/v8/src/compiler/code-assembler.cc +++ b/deps/v8/src/compiler/code-assembler.cc @@ -639,7 +639,7 @@ Node* CodeAssembler::CallStubR(const CallInterfaceDescriptor& descriptor, #define INSTANTIATE(...) \ template V8_EXPORT_PRIVATE Node* CodeAssembler::CallStubR( \ const CallInterfaceDescriptor& descriptor, size_t, Node*, __VA_ARGS__); -REPEAT_1_TO_8(INSTANTIATE, Node*) +REPEAT_1_TO_11(INSTANTIATE, Node*) #undef INSTANTIATE Node* CodeAssembler::CallStubN(const CallInterfaceDescriptor& descriptor, @@ -709,6 +709,13 @@ Node* CodeAssembler::CallCFunctionN(Signature<MachineType>* signature, return raw_assembler()->CallN(desc, input_count, inputs); } +Node* CodeAssembler::CallCFunction1(MachineType return_type, + MachineType arg0_type, Node* function, + Node* arg0) { + return raw_assembler()->CallCFunction1(return_type, arg0_type, function, + arg0); +} + Node* CodeAssembler::CallCFunction2(MachineType return_type, MachineType arg0_type, MachineType arg1_type, Node* function, @@ -726,6 +733,28 @@ Node* CodeAssembler::CallCFunction3(MachineType return_type, arg2_type, function, arg0, arg1, arg2); } +Node* CodeAssembler::CallCFunction6( + MachineType return_type, MachineType arg0_type, MachineType arg1_type, + MachineType arg2_type, MachineType arg3_type, MachineType arg4_type, + MachineType arg5_type, Node* function, Node* arg0, Node* arg1, Node* arg2, + Node* arg3, Node* arg4, Node* arg5) { + return raw_assembler()->CallCFunction6( + return_type, arg0_type, arg1_type, arg2_type, arg3_type, arg4_type, + arg5_type, function, arg0, arg1, arg2, arg3, arg4, arg5); +} + +Node* CodeAssembler::CallCFunction9( + MachineType return_type, MachineType arg0_type, MachineType arg1_type, + MachineType arg2_type, MachineType arg3_type, MachineType arg4_type, + MachineType arg5_type, MachineType arg6_type, MachineType arg7_type, + MachineType arg8_type, Node* function, Node* arg0, Node* arg1, Node* arg2, + Node* arg3, Node* arg4, Node* arg5, Node* arg6, Node* arg7, Node* arg8) { + return raw_assembler()->CallCFunction9( + return_type, arg0_type, arg1_type, arg2_type, arg3_type, arg4_type, + arg5_type, arg6_type, arg7_type, arg8_type, function, arg0, arg1, arg2, + arg3, arg4, arg5, arg6, arg7, arg8); +} + void CodeAssembler::Goto(Label* label) { label->MergeVariables(); raw_assembler()->Goto(label->label_); @@ -967,7 +996,13 @@ void CodeAssemblerLabel::MergeVariables() { #if DEBUG void CodeAssemblerLabel::Bind(AssemblerDebugInfo debug_info) { - DCHECK(!bound_); + if (bound_) { + std::stringstream str; + str << "Cannot bind the same label twice:" + << "\n# current: " << debug_info + << "\n# previous: " << *label_->block(); + FATAL(str.str().c_str()); + } state_->raw_assembler_->Bind(label_, debug_info); UpdateVariablesAfterBind(); } |