Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(101)

Unified Diff: src/compiler/code-assembler.h

Issue 2172223002: [stubs] Call interface descriptors cleanup. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@store-ic-tf
Patch Set: Addressing comments Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/code-stubs-hydrogen.cc ('k') | src/compiler/code-assembler.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/compiler/code-assembler.h
diff --git a/src/compiler/code-assembler.h b/src/compiler/code-assembler.h
index c9f5409ca8a5cf27489b390db06b2f3df5beb534..004f31fd658cc2d9b6348afcb4e4fb070ec83bca 100644
--- a/src/compiler/code-assembler.h
+++ b/src/compiler/code-assembler.h
@@ -326,6 +326,15 @@ class CodeAssembler {
Node* arg1, Node* arg2, Node* arg3, Node* arg4,
Node* arg5);
+ // A pair of a zero-based argument index and a value.
+ // It helps writing arguments order independent code.
+ struct Arg {
+ Arg(int index, Node* value) : index(index), value(value) {}
+
+ int const index;
+ Node* const value;
+ };
+
Node* CallStub(Callable const& callable, Node* context, Node* arg1,
size_t result_size = 1);
Node* CallStub(Callable const& callable, Node* context, Node* arg1,
@@ -348,6 +357,21 @@ class CodeAssembler {
Node* CallStub(const CallInterfaceDescriptor& descriptor, Node* target,
Node* context, Node* arg1, Node* arg2, Node* arg3, Node* arg4,
Node* arg5, size_t result_size = 1);
+
+ Node* CallStub(const CallInterfaceDescriptor& descriptor, Node* target,
+ Node* context, const Arg& arg1, const Arg& arg2,
+ size_t result_size = 1);
+ Node* CallStub(const CallInterfaceDescriptor& descriptor, Node* target,
+ Node* context, const Arg& arg1, const Arg& arg2,
+ const Arg& arg3, size_t result_size = 1);
+ Node* CallStub(const CallInterfaceDescriptor& descriptor, Node* target,
+ Node* context, const Arg& arg1, const Arg& arg2,
+ const Arg& arg3, const Arg& arg4, size_t result_size = 1);
+ Node* CallStub(const CallInterfaceDescriptor& descriptor, Node* target,
+ Node* context, const Arg& arg1, const Arg& arg2,
+ const Arg& arg3, const Arg& arg4, const Arg& arg5,
+ size_t result_size = 1);
+
Node* CallStubN(const CallInterfaceDescriptor& descriptor, Node* target,
Node** args, size_t result_size = 1);
@@ -369,6 +393,14 @@ class CodeAssembler {
Node* context, Node* arg1, Node* arg2, Node* arg3,
Node* arg4, size_t result_size = 1);
+ Node* TailCallStub(const CallInterfaceDescriptor& descriptor, Node* target,
+ Node* context, const Arg& arg1, const Arg& arg2,
+ const Arg& arg3, const Arg& arg4, size_t result_size = 1);
+ Node* TailCallStub(const CallInterfaceDescriptor& descriptor, Node* target,
+ Node* context, const Arg& arg1, const Arg& arg2,
+ const Arg& arg3, const Arg& arg4, const Arg& arg5,
+ size_t result_size = 1);
+
Node* TailCallBytecodeDispatch(const CallInterfaceDescriptor& descriptor,
Node* code_target_address, Node** args);
« no previous file with comments | « src/code-stubs-hydrogen.cc ('k') | src/compiler/code-assembler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698