From 9dc3e39fc2c0c02b3b592dddca46035ed918d478 Mon Sep 17 00:00:00 2001 From: squidbus <175574877+squidbus@users.noreply.github.com> Date: Sat, 8 Feb 2025 13:21:32 -0800 Subject: [PATCH] address_space: Split macOS reserved memory region. (#2372) --- CMakeLists.txt | 2 +- src/core/address_space.cpp | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index c1ec7b7b9..506198e1a 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1016,7 +1016,7 @@ if (APPLE) if (ARCHITECTURE STREQUAL "x86_64") # Reserve system-managed memory space. - target_link_options(shadps4 PRIVATE -Wl,-no_pie,-no_fixup_chains,-no_huge,-pagezero_size,0x4000,-segaddr,TCB_SPACE,0x4000,-segaddr,GUEST_SYSTEM,0x400000,-image_base,0x20000000000) + target_link_options(shadps4 PRIVATE -Wl,-no_pie,-no_fixup_chains,-no_huge,-pagezero_size,0x4000,-segaddr,TCB_SPACE,0x4000,-segaddr,SYSTEM_MANAGED,0x400000,-segaddr,SYSTEM_RESERVED,0x7FFFFC000,-image_base,0x20000000000) endif() # Replacement for std::chrono::time_zone diff --git a/src/core/address_space.cpp b/src/core/address_space.cpp index e9fb8cfbc..2e66bdf83 100644 --- a/src/core/address_space.cpp +++ b/src/core/address_space.cpp @@ -21,7 +21,8 @@ #if defined(__APPLE__) && defined(ARCH_X86_64) // Reserve space for the system address space using a zerofill section. -asm(".zerofill GUEST_SYSTEM,GUEST_SYSTEM,__guest_system,0xFBFC00000"); +asm(".zerofill SYSTEM_MANAGED,SYSTEM_MANAGED,__SYSTEM_MANAGED,0x7FFBFC000"); +asm(".zerofill SYSTEM_RESERVED,SYSTEM_RESERVED,__SYSTEM_RESERVED,0x7C0004000"); #endif namespace Core {