OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef V8_GLOBALS_H_ | 5 #ifndef V8_GLOBALS_H_ |
6 #define V8_GLOBALS_H_ | 6 #define V8_GLOBALS_H_ |
7 | 7 |
8 #include <stddef.h> | 8 #include <stddef.h> |
9 #include <stdint.h> | 9 #include <stdint.h> |
10 | 10 |
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
116 | 116 |
117 const int kCharSize = sizeof(char); // NOLINT | 117 const int kCharSize = sizeof(char); // NOLINT |
118 const int kShortSize = sizeof(short); // NOLINT | 118 const int kShortSize = sizeof(short); // NOLINT |
119 const int kIntSize = sizeof(int); // NOLINT | 119 const int kIntSize = sizeof(int); // NOLINT |
120 const int kInt32Size = sizeof(int32_t); // NOLINT | 120 const int kInt32Size = sizeof(int32_t); // NOLINT |
121 const int kInt64Size = sizeof(int64_t); // NOLINT | 121 const int kInt64Size = sizeof(int64_t); // NOLINT |
122 const int kFloatSize = sizeof(float); // NOLINT | 122 const int kFloatSize = sizeof(float); // NOLINT |
123 const int kDoubleSize = sizeof(double); // NOLINT | 123 const int kDoubleSize = sizeof(double); // NOLINT |
124 const int kIntptrSize = sizeof(intptr_t); // NOLINT | 124 const int kIntptrSize = sizeof(intptr_t); // NOLINT |
125 const int kPointerSize = sizeof(void*); // NOLINT | 125 const int kPointerSize = sizeof(void*); // NOLINT |
| 126 #if V8_TARGET_ARCH_ARM64 |
| 127 const int kFrameAlignmentInBytes = 2 * kPointerSize; |
| 128 #else |
| 129 const int kFrameAlignmentInBytes = kPointerSize; |
| 130 #endif |
126 #if V8_TARGET_ARCH_X64 && V8_TARGET_ARCH_32_BIT | 131 #if V8_TARGET_ARCH_X64 && V8_TARGET_ARCH_32_BIT |
127 const int kRegisterSize = kPointerSize + kPointerSize; | 132 const int kRegisterSize = kPointerSize + kPointerSize; |
128 #else | 133 #else |
129 const int kRegisterSize = kPointerSize; | 134 const int kRegisterSize = kPointerSize; |
130 #endif | 135 #endif |
131 const int kPCOnStackSize = kRegisterSize; | 136 const int kPCOnStackSize = kRegisterSize; |
132 const int kFPOnStackSize = kRegisterSize; | 137 const int kFPOnStackSize = kRegisterSize; |
133 | 138 |
| 139 #if V8_TARGET_ARCH_X64 || V8_TARGET_ARCH_IA32 |
| 140 const int kElidedFrameSlots = kPCOnStackSize / kPointerSize; |
| 141 #else |
| 142 const int kElidedFrameSlots = 0; |
| 143 #endif |
| 144 |
134 const int kDoubleSizeLog2 = 3; | 145 const int kDoubleSizeLog2 = 3; |
135 | 146 |
136 #if V8_HOST_ARCH_64_BIT | 147 #if V8_HOST_ARCH_64_BIT |
137 const int kPointerSizeLog2 = 3; | 148 const int kPointerSizeLog2 = 3; |
138 const intptr_t kIntptrSignBit = V8_INT64_C(0x8000000000000000); | 149 const intptr_t kIntptrSignBit = V8_INT64_C(0x8000000000000000); |
139 const uintptr_t kUintptrAllBitsSet = V8_UINT64_C(0xFFFFFFFFFFFFFFFF); | 150 const uintptr_t kUintptrAllBitsSet = V8_UINT64_C(0xFFFFFFFFFFFFFFFF); |
140 const bool kRequiresCodeRange = true; | 151 const bool kRequiresCodeRange = true; |
141 #if V8_TARGET_ARCH_MIPS64 | 152 #if V8_TARGET_ARCH_MIPS64 |
142 // To use pseudo-relative jumps such as j/jal instructions which have 28-bit | 153 // To use pseudo-relative jumps such as j/jal instructions which have 28-bit |
143 // encoded immediate, the addresses have to be in range of 256MB aligned | 154 // encoded immediate, the addresses have to be in range of 256MB aligned |
(...skipping 884 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1028 return static_cast<uint32_t>(bit_cast<uintptr_t>(address) >> | 1039 return static_cast<uint32_t>(bit_cast<uintptr_t>(address) >> |
1029 kPointerSizeLog2); | 1040 kPointerSizeLog2); |
1030 } | 1041 } |
1031 | 1042 |
1032 } // namespace internal | 1043 } // namespace internal |
1033 } // namespace v8 | 1044 } // namespace v8 |
1034 | 1045 |
1035 namespace i = v8::internal; | 1046 namespace i = v8::internal; |
1036 | 1047 |
1037 #endif // V8_GLOBALS_H_ | 1048 #endif // V8_GLOBALS_H_ |
OLD | NEW |