frame-constants-arm64.h 1.31 KB
Newer Older
1
// Copyright 2013 the V8 project authors. All rights reserved.
2 3
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
4

5 6
#ifndef V8_ARM64_FRAMES_ARM64_H_
#define V8_ARM64_FRAMES_ARM64_H_
7 8 9 10 11 12 13 14 15 16

namespace v8 {
namespace internal {

class EntryFrameConstants : public AllStatic {
 public:
  static const int kCallerFPOffset =
      -(StandardFrameConstants::kFixedFrameSizeFromFp + kPointerSize);
};

17
class ExitFrameConstants : public TypedFrameConstants {
18
 public:
19 20
  static const int kSPOffset = TYPED_FRAME_PUSHED_VALUE_OFFSET(0);
  static const int kCodeOffset = TYPED_FRAME_PUSHED_VALUE_OFFSET(1);
21 22 23
  static const int kPaddingOffset = TYPED_FRAME_PUSHED_VALUE_OFFSET(2);
  DEFINE_TYPED_FRAME_SIZES(3);
  static const int kLastExitFrameField = kPaddingOffset;
24

25
  static const int kConstantPoolOffset = 0;  // Not used
26 27 28 29 30 31 32 33 34 35 36
};

class JavaScriptFrameConstants : public AllStatic {
 public:
  // FP-relative.
  static const int kLocal0Offset = StandardFrameConstants::kExpressionsOffset;

  // There are two words on the stack (saved fp and saved lr) between fp and
  // the arguments.
  static const int kLastParameterOffset = 2 * kPointerSize;

37
  static const int kFunctionOffset = StandardFrameConstants::kFunctionOffset;
38 39
};

40 41
}  // namespace internal
}  // namespace v8
42

43
#endif  // V8_ARM64_FRAMES_ARM64_H_