| 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 "include/v8stdint.h" | 8 #include "include/v8stdint.h" |
| 9 | 9 |
| 10 #include "src/base/build_config.h" | 10 #include "src/base/build_config.h" |
| 11 #include "src/base/logging.h" |
| 11 #include "src/base/macros.h" | 12 #include "src/base/macros.h" |
| 12 #include "src/checks.h" | |
| 13 | 13 |
| 14 // Unfortunately, the INFINITY macro cannot be used with the '-pedantic' | 14 // Unfortunately, the INFINITY macro cannot be used with the '-pedantic' |
| 15 // warning flag and certain versions of GCC due to a bug: | 15 // warning flag and certain versions of GCC due to a bug: |
| 16 // http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11931 | 16 // http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11931 |
| 17 // For now, we use the more involved template-based version from <limits>, but | 17 // For now, we use the more involved template-based version from <limits>, but |
| 18 // only when compiling with GCC versions affected by the bug (2.96.x - 4.0.x) | 18 // only when compiling with GCC versions affected by the bug (2.96.x - 4.0.x) |
| 19 #if V8_CC_GNU && V8_GNUC_PREREQ(2, 96, 0) && !V8_GNUC_PREREQ(4, 1, 0) | 19 #if V8_CC_GNU && V8_GNUC_PREREQ(2, 96, 0) && !V8_GNUC_PREREQ(4, 1, 0) |
| 20 # include <limits> // NOLINT | 20 # include <limits> // NOLINT |
| 21 # define V8_INFINITY std::numeric_limits<double>::infinity() | 21 # define V8_INFINITY std::numeric_limits<double>::infinity() |
| 22 #elif V8_LIBC_MSVCRT | 22 #elif V8_LIBC_MSVCRT |
| 23 # define V8_INFINITY HUGE_VAL | 23 # define V8_INFINITY HUGE_VAL |
| 24 #else | 24 #else |
| 25 # define V8_INFINITY INFINITY | 25 # define V8_INFINITY INFINITY |
| 26 #endif | 26 #endif |
| 27 | 27 |
| 28 namespace v8 { | 28 namespace v8 { |
| 29 |
| 30 namespace base { |
| 31 class Mutex; |
| 32 class RecursiveMutex; |
| 33 class VirtualMemory; |
| 34 } |
| 35 |
| 29 namespace internal { | 36 namespace internal { |
| 30 | 37 |
| 31 // Determine whether we are running in a simulated environment. | 38 // Determine whether we are running in a simulated environment. |
| 32 // Setting USE_SIMULATOR explicitly from the build script will force | 39 // Setting USE_SIMULATOR explicitly from the build script will force |
| 33 // the use of a simulated environment. | 40 // the use of a simulated environment. |
| 34 #if !defined(USE_SIMULATOR) | 41 #if !defined(USE_SIMULATOR) |
| 35 #if (V8_TARGET_ARCH_ARM64 && !V8_HOST_ARCH_ARM64) | 42 #if (V8_TARGET_ARCH_ARM64 && !V8_HOST_ARCH_ARM64) |
| 36 #define USE_SIMULATOR 1 | 43 #define USE_SIMULATOR 1 |
| 37 #endif | 44 #endif |
| 38 #if (V8_TARGET_ARCH_ARM && !V8_HOST_ARCH_ARM) | 45 #if (V8_TARGET_ARCH_ARM && !V8_HOST_ARCH_ARM) |
| (...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 232 const Address kHandleZapValue = reinterpret_cast<Address>(0xbaddeaf); | 239 const Address kHandleZapValue = reinterpret_cast<Address>(0xbaddeaf); |
| 233 const Address kGlobalHandleZapValue = reinterpret_cast<Address>(0xbaffedf); | 240 const Address kGlobalHandleZapValue = reinterpret_cast<Address>(0xbaffedf); |
| 234 const Address kFromSpaceZapValue = reinterpret_cast<Address>(0xbeefdaf); | 241 const Address kFromSpaceZapValue = reinterpret_cast<Address>(0xbeefdaf); |
| 235 const uint32_t kSlotsZapValue = 0xbeefdeef; | 242 const uint32_t kSlotsZapValue = 0xbeefdeef; |
| 236 const uint32_t kDebugZapValue = 0xbadbaddb; | 243 const uint32_t kDebugZapValue = 0xbadbaddb; |
| 237 const uint32_t kFreeListZapValue = 0xfeed1eaf; | 244 const uint32_t kFreeListZapValue = 0xfeed1eaf; |
| 238 #endif | 245 #endif |
| 239 | 246 |
| 240 const int kCodeZapValue = 0xbadc0de; | 247 const int kCodeZapValue = 0xbadc0de; |
| 241 | 248 |
| 242 // Number of bits to represent the page size for paged spaces. The value of 20 | |
| 243 // gives 1Mb bytes per page. | |
| 244 const int kPageSizeBits = 20; | |
| 245 | |
| 246 // On Intel architecture, cache line size is 64 bytes. | 249 // On Intel architecture, cache line size is 64 bytes. |
| 247 // On ARM it may be less (32 bytes), but as far this constant is | 250 // On ARM it may be less (32 bytes), but as far this constant is |
| 248 // used for aligning data, it doesn't hurt to align on a greater value. | 251 // used for aligning data, it doesn't hurt to align on a greater value. |
| 249 #define PROCESSOR_CACHE_LINE_SIZE 64 | 252 #define PROCESSOR_CACHE_LINE_SIZE 64 |
| 250 | 253 |
| 251 // Constants relevant to double precision floating point numbers. | 254 // Constants relevant to double precision floating point numbers. |
| 252 // If looking only at the top 32 bits, the QNaN mask is bits 19 to 30. | 255 // If looking only at the top 32 bits, the QNaN mask is bits 19 to 30. |
| 253 const uint32_t kQuietNaNHighBitsMask = 0xfff << (51 - 32); | 256 const uint32_t kQuietNaNHighBitsMask = 0xfff << (51 - 32); |
| 254 | 257 |
| 255 | 258 |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 304 class Smi; | 307 class Smi; |
| 305 template <typename Config, class Allocator = FreeStoreAllocationPolicy> | 308 template <typename Config, class Allocator = FreeStoreAllocationPolicy> |
| 306 class SplayTree; | 309 class SplayTree; |
| 307 class String; | 310 class String; |
| 308 class Name; | 311 class Name; |
| 309 class Struct; | 312 class Struct; |
| 310 class Variable; | 313 class Variable; |
| 311 class RelocInfo; | 314 class RelocInfo; |
| 312 class Deserializer; | 315 class Deserializer; |
| 313 class MessageLocation; | 316 class MessageLocation; |
| 314 class VirtualMemory; | |
| 315 class Mutex; | |
| 316 class RecursiveMutex; | |
| 317 | 317 |
| 318 typedef bool (*WeakSlotCallback)(Object** pointer); | 318 typedef bool (*WeakSlotCallback)(Object** pointer); |
| 319 | 319 |
| 320 typedef bool (*WeakSlotCallbackWithHeap)(Heap* heap, Object** pointer); | 320 typedef bool (*WeakSlotCallbackWithHeap)(Heap* heap, Object** pointer); |
| 321 | 321 |
| 322 // ----------------------------------------------------------------------------- | 322 // ----------------------------------------------------------------------------- |
| 323 // Miscellaneous | 323 // Miscellaneous |
| 324 | 324 |
| 325 // NOTE: SpaceIterator depends on AllocationSpace enumeration values being | 325 // NOTE: SpaceIterator depends on AllocationSpace enumeration values being |
| 326 // consecutive. | 326 // consecutive. |
| (...skipping 395 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 722 enum MinusZeroMode { | 722 enum MinusZeroMode { |
| 723 TREAT_MINUS_ZERO_AS_ZERO, | 723 TREAT_MINUS_ZERO_AS_ZERO, |
| 724 FAIL_ON_MINUS_ZERO | 724 FAIL_ON_MINUS_ZERO |
| 725 }; | 725 }; |
| 726 | 726 |
| 727 } } // namespace v8::internal | 727 } } // namespace v8::internal |
| 728 | 728 |
| 729 namespace i = v8::internal; | 729 namespace i = v8::internal; |
| 730 | 730 |
| 731 #endif // V8_GLOBALS_H_ | 731 #endif // V8_GLOBALS_H_ |
| OLD | NEW |