Index: src/compiler/linkage.h |
diff --git a/src/compiler/linkage.h b/src/compiler/linkage.h |
index 0f4b8db1c448055bc4568d5673bbf0b26a53fce5..04b6e98202c38014244ddbf6026257b830222fd3 100644 |
--- a/src/compiler/linkage.h |
+++ b/src/compiler/linkage.h |
@@ -57,6 +57,15 @@ class LinkageLocation { |
return LinkageLocation(STACK_SLOT, slot); |
} |
+ static LinkageLocation ConvertToTailCallerLocation( |
+ LinkageLocation caller_location, int stack_param_delta) { |
+ if (!caller_location.IsRegister()) { |
+ return LinkageLocation(STACK_SLOT, |
+ caller_location.GetLocation() + stack_param_delta); |
+ } |
+ return caller_location; |
+ } |
+ |
private: |
friend class CallDescriptor; |
friend class OperandGenerator; |
@@ -222,7 +231,7 @@ class CallDescriptor final : public ZoneObject { |
bool HasSameReturnLocationsAs(const CallDescriptor* other) const; |
- bool CanTailCall(const Node* call) const; |
+ bool CanTailCall(const Node* call, int* stack_param_delta) const; |
private: |
friend class Linkage; |