| Index: src/arm64/lithium-codegen-arm64.h
|
| diff --git a/src/arm64/lithium-codegen-arm64.h b/src/arm64/lithium-codegen-arm64.h
|
| index 809ed556d06843fea17b7f0d5d4bd6f6b6f1d96d..06cc92f0e3e1f46b568b598bcab681c1fbbe52d6 100644
|
| --- a/src/arm64/lithium-codegen-arm64.h
|
| +++ b/src/arm64/lithium-codegen-arm64.h
|
| @@ -37,7 +37,8 @@ class LCodeGen: public LCodeGenBase {
|
| frame_is_built_(false),
|
| safepoints_(info->zone()),
|
| resolver_(this),
|
| - expected_safepoint_kind_(Safepoint::kSimple) {
|
| + expected_safepoint_kind_(Safepoint::kSimple),
|
| + pushed_arguments_(0) {
|
| PopulateDeoptimizationLiteralsWithInlinedFunctions();
|
| }
|
|
|
| @@ -81,7 +82,9 @@ class LCodeGen: public LCodeGenBase {
|
| Register ToRegister32(LOperand* op) const;
|
| Operand ToOperand(LOperand* op);
|
| Operand ToOperand32(LOperand* op);
|
| - MemOperand ToMemOperand(LOperand* op) const;
|
| + enum StackMode { kMustUseFramePointer, kCanUseStackPointer };
|
| + MemOperand ToMemOperand(LOperand* op,
|
| + StackMode stack_mode = kCanUseStackPointer) const;
|
| Handle<Object> ToHandle(LConstantOperand* op) const;
|
|
|
| template <class LI>
|
| @@ -358,6 +361,15 @@ class LCodeGen: public LCodeGenBase {
|
|
|
| Safepoint::Kind expected_safepoint_kind_;
|
|
|
| + // The number of arguments pushed onto the stack, either by this block or by a
|
| + // predecessor.
|
| + int pushed_arguments_;
|
| +
|
| + void RecordPushedArgumentsDelta(int delta) {
|
| + pushed_arguments_ += delta;
|
| + DCHECK(pushed_arguments_ >= 0);
|
| + }
|
| +
|
| int old_position_;
|
|
|
| class PushSafepointRegistersScope BASE_EMBEDDED {
|
|
|