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 |