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 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
117 | 117 |
118 const int kCharSize = sizeof(char); // NOLINT | 118 const int kCharSize = sizeof(char); // NOLINT |
119 const int kShortSize = sizeof(short); // NOLINT | 119 const int kShortSize = sizeof(short); // NOLINT |
120 const int kIntSize = sizeof(int); // NOLINT | 120 const int kIntSize = sizeof(int); // NOLINT |
121 const int kInt32Size = sizeof(int32_t); // NOLINT | 121 const int kInt32Size = sizeof(int32_t); // NOLINT |
122 const int kInt64Size = sizeof(int64_t); // NOLINT | 122 const int kInt64Size = sizeof(int64_t); // NOLINT |
123 const int kFloatSize = sizeof(float); // NOLINT | 123 const int kFloatSize = sizeof(float); // NOLINT |
124 const int kDoubleSize = sizeof(double); // NOLINT | 124 const int kDoubleSize = sizeof(double); // NOLINT |
125 const int kIntptrSize = sizeof(intptr_t); // NOLINT | 125 const int kIntptrSize = sizeof(intptr_t); // NOLINT |
126 const int kPointerSize = sizeof(void*); // NOLINT | 126 const int kPointerSize = sizeof(void*); // NOLINT |
| 127 #if V8_TARGET_ARCH_ARM64 |
| 128 const int kFrameAlignmentInBytes = 2 * kPointerSize; |
| 129 #else |
| 130 const int kFrameAlignmentInBytes = kPointerSize; |
| 131 #endif |
127 #if V8_TARGET_ARCH_X64 && V8_TARGET_ARCH_32_BIT | 132 #if V8_TARGET_ARCH_X64 && V8_TARGET_ARCH_32_BIT |
128 const int kRegisterSize = kPointerSize + kPointerSize; | 133 const int kRegisterSize = kPointerSize + kPointerSize; |
129 #else | 134 #else |
130 const int kRegisterSize = kPointerSize; | 135 const int kRegisterSize = kPointerSize; |
131 #endif | 136 #endif |
132 const int kPCOnStackSize = kRegisterSize; | 137 const int kPCOnStackSize = kRegisterSize; |
133 const int kFPOnStackSize = kRegisterSize; | 138 const int kFPOnStackSize = kRegisterSize; |
134 | 139 |
| 140 #if V8_TARGET_ARCH_X64 || V8_TARGET_ARCH_IA32 |
| 141 const int kElidedFrameSlots = kPCOnStackSize / kPointerSize; |
| 142 #else |
| 143 const int kElidedFrameSlots = 0; |
| 144 #endif |
| 145 |
135 const int kDoubleSizeLog2 = 3; | 146 const int kDoubleSizeLog2 = 3; |
136 | 147 |
137 #if V8_HOST_ARCH_64_BIT | 148 #if V8_HOST_ARCH_64_BIT |
138 const int kPointerSizeLog2 = 3; | 149 const int kPointerSizeLog2 = 3; |
139 const intptr_t kIntptrSignBit = V8_INT64_C(0x8000000000000000); | 150 const intptr_t kIntptrSignBit = V8_INT64_C(0x8000000000000000); |
140 const uintptr_t kUintptrAllBitsSet = V8_UINT64_C(0xFFFFFFFFFFFFFFFF); | 151 const uintptr_t kUintptrAllBitsSet = V8_UINT64_C(0xFFFFFFFFFFFFFFFF); |
141 const bool kRequiresCodeRange = true; | 152 const bool kRequiresCodeRange = true; |
142 #if V8_TARGET_ARCH_MIPS64 | 153 #if V8_TARGET_ARCH_MIPS64 |
143 // To use pseudo-relative jumps such as j/jal instructions which have 28-bit | 154 // To use pseudo-relative jumps such as j/jal instructions which have 28-bit |
144 // encoded immediate, the addresses have to be in range of 256MB aligned | 155 // 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... |
1029 return static_cast<uint32_t>(bit_cast<uintptr_t>(address) >> | 1040 return static_cast<uint32_t>(bit_cast<uintptr_t>(address) >> |
1030 kPointerSizeLog2); | 1041 kPointerSizeLog2); |
1031 } | 1042 } |
1032 | 1043 |
1033 } // namespace internal | 1044 } // namespace internal |
1034 } // namespace v8 | 1045 } // namespace v8 |
1035 | 1046 |
1036 namespace i = v8::internal; | 1047 namespace i = v8::internal; |
1037 | 1048 |
1038 #endif // V8_GLOBALS_H_ | 1049 #endif // V8_GLOBALS_H_ |
OLD | NEW |