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 #ifndef V8_COMPILER_CODE_STUB_ASSEMBLER_H_ | 5 #ifndef V8_COMPILER_CODE_STUB_ASSEMBLER_H_ |
6 #define V8_COMPILER_CODE_STUB_ASSEMBLER_H_ | 6 #define V8_COMPILER_CODE_STUB_ASSEMBLER_H_ |
7 | 7 |
8 #include <map> | 8 #include <map> |
9 | 9 |
10 // Clients of this interface shouldn't depend on lots of compiler internals. | 10 // Clients of this interface shouldn't depend on lots of compiler internals. |
11 // Do not include anything from src/compiler here! | 11 // Do not include anything from src/compiler here! |
12 #include "src/allocation.h" | 12 #include "src/allocation.h" |
13 #include "src/builtins.h" | 13 #include "src/builtins.h" |
14 #include "src/heap/heap.h" | 14 #include "src/heap/heap.h" |
15 #include "src/machine-type.h" | 15 #include "src/machine-type.h" |
16 #include "src/runtime/runtime.h" | 16 #include "src/runtime/runtime.h" |
17 #include "src/zone-containers.h" | 17 #include "src/zone-containers.h" |
18 | 18 |
19 namespace v8 { | 19 namespace v8 { |
20 namespace internal { | 20 namespace internal { |
21 | 21 |
| 22 class Callable; |
22 class CallInterfaceDescriptor; | 23 class CallInterfaceDescriptor; |
23 class Isolate; | 24 class Isolate; |
24 class Factory; | 25 class Factory; |
25 class Zone; | 26 class Zone; |
26 | 27 |
27 namespace compiler { | 28 namespace compiler { |
28 | 29 |
29 class CallDescriptor; | 30 class CallDescriptor; |
30 class Graph; | 31 class Graph; |
31 class Node; | 32 class Node; |
(...skipping 176 matching lines...) Loading... |
208 Node* CallStub(const CallInterfaceDescriptor& descriptor, Node* target, | 209 Node* CallStub(const CallInterfaceDescriptor& descriptor, Node* target, |
209 Node* context, Node* arg1, Node* arg2, Node* arg3, | 210 Node* context, Node* arg1, Node* arg2, Node* arg3, |
210 size_t result_size = 1); | 211 size_t result_size = 1); |
211 Node* CallStub(const CallInterfaceDescriptor& descriptor, Node* target, | 212 Node* CallStub(const CallInterfaceDescriptor& descriptor, Node* target, |
212 Node* context, Node* arg1, Node* arg2, Node* arg3, Node* arg4, | 213 Node* context, Node* arg1, Node* arg2, Node* arg3, Node* arg4, |
213 size_t result_size = 1); | 214 size_t result_size = 1); |
214 Node* CallStub(const CallInterfaceDescriptor& descriptor, Node* target, | 215 Node* CallStub(const CallInterfaceDescriptor& descriptor, Node* target, |
215 Node* context, Node* arg1, Node* arg2, Node* arg3, Node* arg4, | 216 Node* context, Node* arg1, Node* arg2, Node* arg3, Node* arg4, |
216 Node* arg5, size_t result_size = 1); | 217 Node* arg5, size_t result_size = 1); |
217 | 218 |
| 219 Node* TailCallStub(Callable const& callable, Node* context, Node* arg1, |
| 220 Node* arg2, size_t result_size = 1); |
| 221 |
218 Node* TailCallStub(const CallInterfaceDescriptor& descriptor, Node* target, | 222 Node* TailCallStub(const CallInterfaceDescriptor& descriptor, Node* target, |
219 Node* context, Node* arg1, Node* arg2, | 223 Node* context, Node* arg1, Node* arg2, |
220 size_t result_size = 1); | 224 size_t result_size = 1); |
221 | 225 |
222 Node* TailCall(const CallInterfaceDescriptor& descriptor, Node* target, | 226 Node* TailCall(const CallInterfaceDescriptor& descriptor, Node* target, |
223 Node** args, size_t result_size = 1); | 227 Node** args, size_t result_size = 1); |
224 | 228 |
225 // =========================================================================== | 229 // =========================================================================== |
226 // Macros | 230 // Macros |
227 // =========================================================================== | 231 // =========================================================================== |
(...skipping 114 matching lines...) Loading... |
342 // Map of variables to the list of value nodes that have been added from each | 346 // Map of variables to the list of value nodes that have been added from each |
343 // merge path in their order of merging. | 347 // merge path in their order of merging. |
344 std::map<Variable::Impl*, std::vector<Node*>> variable_merges_; | 348 std::map<Variable::Impl*, std::vector<Node*>> variable_merges_; |
345 }; | 349 }; |
346 | 350 |
347 } // namespace compiler | 351 } // namespace compiler |
348 } // namespace internal | 352 } // namespace internal |
349 } // namespace v8 | 353 } // namespace v8 |
350 | 354 |
351 #endif // V8_COMPILER_CODE_STUB_ASSEMBLER_H_ | 355 #endif // V8_COMPILER_CODE_STUB_ASSEMBLER_H_ |
OLD | NEW |