5 #ifndef V8_X64_FRAME_CONSTANTS_X64_H_ 6 #define V8_X64_FRAME_CONSTANTS_X64_H_ 8 #include "src/base/macros.h" 9 #include "src/frame-constants.h" 14 class EntryFrameConstants :
public AllStatic {
17 static constexpr
int kCalleeSaveXMMRegisters = 10;
18 static constexpr
int kXMMRegisterSize = 16;
19 static constexpr
int kXMMRegistersBlockSize =
20 kXMMRegisterSize * kCalleeSaveXMMRegisters;
21 static constexpr
int kCallerFPOffset =
22 -3 * kPointerSize + -7 * kRegisterSize - kXMMRegistersBlockSize;
25 static constexpr
int kCallerFPOffset = -3 * kPointerSize + -5 * kRegisterSize;
27 static constexpr
int kArgvOffset = 6 * kPointerSize;
30 class ExitFrameConstants :
public TypedFrameConstants {
32 static constexpr
int kSPOffset = TYPED_FRAME_PUSHED_VALUE_OFFSET(0);
33 static constexpr
int kCodeOffset = TYPED_FRAME_PUSHED_VALUE_OFFSET(1);
34 DEFINE_TYPED_FRAME_SIZES(2);
36 static constexpr
int kCallerFPOffset = +0 * kPointerSize;
37 static constexpr
int kCallerPCOffset = kFPOnStackSize;
41 static constexpr
int kCallerSPDisplacement = kCallerPCOffset + kPCOnStackSize;
43 static constexpr
int kConstantPoolOffset = 0;
46 class WasmCompileLazyFrameConstants :
public TypedFrameConstants {
48 static constexpr
int kNumberOfSavedGpParamRegs = 6;
49 static constexpr
int kNumberOfSavedFpParamRegs = 6;
52 static constexpr
int kWasmInstanceOffset = TYPED_FRAME_PUSHED_VALUE_OFFSET(0);
53 static constexpr
int kFixedFrameSizeFromFp =
54 TypedFrameConstants::kFixedFrameSizeFromFp +
55 kNumberOfSavedGpParamRegs * kPointerSize +
56 kNumberOfSavedFpParamRegs * kSimd128Size;
59 class JavaScriptFrameConstants :
public AllStatic {
62 static constexpr
int kLocal0Offset =
63 StandardFrameConstants::kExpressionsOffset;
64 static constexpr
int kLastParameterOffset = kFPOnStackSize + kPCOnStackSize;
65 static constexpr
int kFunctionOffset =
66 StandardFrameConstants::kFunctionOffset;
69 static constexpr
int kParam0Offset = -2 * kPointerSize;
70 static constexpr
int kReceiverOffset = -1 * kPointerSize;
76 #endif // V8_X64_FRAME_CONSTANTS_X64_H_