@@ -30,23 +30,47 @@ static constexpr size_t kFullyConstructedBitFieldOffsetFromPayload =
3030// Mask for in-construction bit.
3131static constexpr uint16_t kFullyConstructedBitMask = uint16_t {1 };
3232
33- static constexpr size_t kPageSize = size_t {1 } << 17 ;
33+ static constexpr size_t kPageSizeBits = 17 ;
34+ static constexpr size_t kPageSize = size_t {1 } << kPageSizeBits ;
3435
35- #if defined(V8_TARGET_ARCH_ARM64) && defined(V8_OS_MACOS)
36+ #if defined(V8_HOST_ARCH_ARM64) && defined(V8_OS_DARWIN)
37+ constexpr size_t kGuardPageSize = 0 ;
38+ #elif defined(V8_HOST_ARCH_PPC64)
39+ constexpr size_t kGuardPageSize = 0 ;
40+ #elif defined(V8_HOST_ARCH_LOONG64) || defined(V8_HOST_ARCH_MIPS64)
3641constexpr size_t kGuardPageSize = 0 ;
3742#else
3843constexpr size_t kGuardPageSize = 4096 ;
3944#endif
4045
4146static constexpr size_t kLargeObjectSizeThreshold = kPageSize / 2 ;
4247
48+ #if defined(CPPGC_POINTER_COMPRESSION)
49+ #if defined(CPPGC_ENABLE_LARGER_CAGE)
50+ constexpr unsigned kPointerCompressionShift = 3 ;
51+ #else // !defined(CPPGC_ENABLE_LARGER_CAGE)
52+ constexpr unsigned kPointerCompressionShift = 1 ;
53+ #endif // !defined(CPPGC_ENABLE_LARGER_CAGE)
54+ #endif // !defined(CPPGC_POINTER_COMPRESSION)
55+
4356#if defined(CPPGC_CAGED_HEAP)
4457#if defined(CPPGC_2GB_CAGE)
45- constexpr size_t kCagedHeapReservationSize = static_cast <size_t >(2 ) * kGB ;
46- #else // !defined(CPPGC_2GB_CAGE)
47- constexpr size_t kCagedHeapReservationSize = static_cast <size_t >(4 ) * kGB ;
58+ constexpr size_t kCagedHeapDefaultReservationSize =
59+ static_cast <size_t >(2 ) * kGB ;
60+ constexpr size_t kCagedHeapMaxReservationSize =
61+ kCagedHeapDefaultReservationSize ;
62+ #else // !defined(CPPGC_2GB_CAGE)
63+ constexpr size_t kCagedHeapDefaultReservationSize =
64+ static_cast <size_t >(4 ) * kGB ;
65+ #if defined(CPPGC_POINTER_COMPRESSION)
66+ constexpr size_t kCagedHeapMaxReservationSize =
67+ size_t {1 } << (31 + kPointerCompressionShift );
68+ #else // !defined(CPPGC_POINTER_COMPRESSION)
69+ constexpr size_t kCagedHeapMaxReservationSize =
70+ kCagedHeapDefaultReservationSize ;
71+ #endif // !defined(CPPGC_POINTER_COMPRESSION)
4872#endif // !defined(CPPGC_2GB_CAGE)
49- constexpr size_t kCagedHeapReservationAlignment = kCagedHeapReservationSize ;
73+ constexpr size_t kCagedHeapReservationAlignment = kCagedHeapMaxReservationSize ;
5074#endif // defined(CPPGC_CAGED_HEAP)
5175
5276static constexpr size_t kDefaultAlignment = sizeof (void *);
@@ -57,6 +81,9 @@ static constexpr size_t kMaxSupportedAlignment = 2 * kDefaultAlignment;
5781// Granularity of heap allocations.
5882constexpr size_t kAllocationGranularity = sizeof (void *);
5983
84+ // Default cacheline size.
85+ constexpr size_t kCachelineSize = 64 ;
86+
6087} // namespace api_constants
6188
6289} // namespace internal
0 commit comments