| OLD | NEW |
| 1 // Copyright 2015 the V8 project authors. All rights reserved. | 1 // Copyright 2015 the V8 project authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "src/compiler/code-assembler.h" | 5 #include "src/compiler/code-assembler.h" |
| 6 | 6 |
| 7 #include <ostream> | 7 #include <ostream> |
| 8 | 8 |
| 9 #include "src/code-factory.h" | 9 #include "src/code-factory.h" |
| 10 #include "src/compiler/graph.h" | 10 #include "src/compiler/graph.h" |
| (...skipping 748 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 759 args[0] = arg1; | 759 args[0] = arg1; |
| 760 args[1] = arg2; | 760 args[1] = arg2; |
| 761 args[2] = arg3; | 761 args[2] = arg3; |
| 762 args[3] = arg4; | 762 args[3] = arg4; |
| 763 args[4] = context; | 763 args[4] = context; |
| 764 | 764 |
| 765 return raw_assembler_->TailCallN(call_descriptor, target, args); | 765 return raw_assembler_->TailCallN(call_descriptor, target, args); |
| 766 } | 766 } |
| 767 | 767 |
| 768 Node* CodeAssembler::TailCallStub(const CallInterfaceDescriptor& descriptor, | 768 Node* CodeAssembler::TailCallStub(const CallInterfaceDescriptor& descriptor, |
| 769 Node* target, Node* context, Node* arg1, |
| 770 Node* arg2, Node* arg3, Node* arg4, |
| 771 Node* arg5, size_t result_size) { |
| 772 CallDescriptor* call_descriptor = Linkage::GetStubCallDescriptor( |
| 773 isolate(), zone(), descriptor, descriptor.GetStackParameterCount(), |
| 774 CallDescriptor::kSupportsTailCalls, Operator::kNoProperties, |
| 775 MachineType::AnyTagged(), result_size); |
| 776 |
| 777 Node** args = zone()->NewArray<Node*>(6); |
| 778 args[0] = arg1; |
| 779 args[1] = arg2; |
| 780 args[2] = arg3; |
| 781 args[3] = arg4; |
| 782 args[4] = arg5; |
| 783 args[5] = context; |
| 784 |
| 785 return raw_assembler_->TailCallN(call_descriptor, target, args); |
| 786 } |
| 787 |
| 788 Node* CodeAssembler::TailCallStub(const CallInterfaceDescriptor& descriptor, |
| 769 Node* target, Node* context, const Arg& arg1, | 789 Node* target, Node* context, const Arg& arg1, |
| 770 const Arg& arg2, const Arg& arg3, | 790 const Arg& arg2, const Arg& arg3, |
| 771 const Arg& arg4, size_t result_size) { | 791 const Arg& arg4, size_t result_size) { |
| 772 CallDescriptor* call_descriptor = Linkage::GetStubCallDescriptor( | 792 CallDescriptor* call_descriptor = Linkage::GetStubCallDescriptor( |
| 773 isolate(), zone(), descriptor, descriptor.GetStackParameterCount(), | 793 isolate(), zone(), descriptor, descriptor.GetStackParameterCount(), |
| 774 CallDescriptor::kSupportsTailCalls, Operator::kNoProperties, | 794 CallDescriptor::kSupportsTailCalls, Operator::kNoProperties, |
| 775 MachineType::AnyTagged(), result_size); | 795 MachineType::AnyTagged(), result_size); |
| 776 | 796 |
| 777 const int kArgsCount = 5; | 797 const int kArgsCount = 5; |
| 778 Node** args = zone()->NewArray<Node*>(kArgsCount); | 798 Node** args = zone()->NewArray<Node*>(kArgsCount); |
| (...skipping 310 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1089 } | 1109 } |
| 1090 } | 1110 } |
| 1091 } | 1111 } |
| 1092 | 1112 |
| 1093 bound_ = true; | 1113 bound_ = true; |
| 1094 } | 1114 } |
| 1095 | 1115 |
| 1096 } // namespace compiler | 1116 } // namespace compiler |
| 1097 } // namespace internal | 1117 } // namespace internal |
| 1098 } // namespace v8 | 1118 } // namespace v8 |
| OLD | NEW |