5#ifndef V8_BASE_BUILD_CONFIG_H_
6#define V8_BASE_BUILD_CONFIG_H_
10#if defined(__ARM_ARCH_7A__) || defined(__ARM_ARCH_7R__) || \
11 defined(__ARM_ARCH_7__)
12#define CAN_USE_ARMV7_INSTRUCTIONS 1
13#ifdef __ARM_ARCH_EXT_IDIV__
14#define CAN_USE_SUDIV 1
16#ifndef CAN_USE_VFP3_INSTRUCTIONS
17#define CAN_USE_VFP3_INSTRUCTIONS 1
21#if defined(__ARM_ARCH_8A__)
22#define CAN_USE_ARMV7_INSTRUCTIONS 1
23#define CAN_USE_SUDIV 1
24#define CAN_USE_ARMV8_INSTRUCTIONS 1
25#ifndef CAN_USE_VFP3_INSTRUCTIONS
26#define CAN_USE_VFP3_INSTRUCTIONS 1
31#if defined(V8_HOST_ARCH_ARM64) && defined(V8_OS_MACOS)
32#define V8_HAS_PTHREAD_JIT_WRITE_PROTECT 1
34#define V8_HAS_PTHREAD_JIT_WRITE_PROTECT 0
38#if defined(V8_HOST_ARCH_ARM64) && defined(V8_OS_IOS) && \
39 defined(__IPHONE_17_4) && \
40 __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_17_4
41#define V8_HAS_BECORE_JIT_WRITE_PROTECT 1
43#define V8_HAS_BECORE_JIT_WRITE_PROTECT 0
46#if defined(V8_OS_LINUX) && defined(V8_HOST_ARCH_X64)
47#define V8_HAS_PKU_JIT_WRITE_PROTECT 1
49#define V8_HAS_PKU_JIT_WRITE_PROTECT 0
52#if defined(V8_TARGET_ARCH_IA32) || defined(V8_TARGET_ARCH_X64)
53#define V8_TARGET_ARCH_STORES_RETURN_ADDRESS_ON_STACK true
55#define V8_TARGET_ARCH_STORES_RETURN_ADDRESS_ON_STACK false
61#if defined(V8_HOST_ARCH_PPC64) && !defined(V8_OS_AIX)
65#elif defined(ENABLE_HUGEPAGE)
68constexpr int kHugePageBits = 21;
69constexpr int kHugePageSize = 1 << kHugePageBits;
84#if (defined(V8_OS_MACOS) && defined(V8_HOST_ARCH_ARM64)) || \
85 (defined(V8_OS_ANDROID) && \
86 (defined(V8_HOST_ARCH_ARM64) || defined(V8_HOST_ARCH_X64))) || \
87 defined(V8_HOST_ARCH_LOONG64) || defined(V8_HOST_ARCH_MIPS64) || \
93#elif defined(V8_OS_LINUX) && !defined(V8_OS_ANDROID) && \
94 (defined(V8_HOST_ARCH_ARM64) || defined(V8_HOST_ARCH_PPC64))
#define V8_TARGET_ARCH_STORES_RETURN_ADDRESS_ON_STACK
constexpr int kRegularPageSize
constexpr int kPageSizeBits
constexpr int kMinimumOSPageSize
constexpr int kReturnAddressStackSlotCount