aboutsummaryrefslogtreecommitdiff
path: root/src/ARMJIT_Memory.cpp
diff options
context:
space:
mode:
authorWaluigiWare64 <68647953+WaluigiWare64@users.noreply.github.com>2020-12-11 00:41:53 +0000
committerGitHub <noreply@github.com>2020-12-11 01:41:53 +0100
commita9223d6c0ad9024b609a99a355755c53b83a5bd3 (patch)
tree2a26684e575d513a8f8ecee1511ae6e9d4ddfcba /src/ARMJIT_Memory.cpp
parent8530c099bca52e95a3ee5da12c43fc57b944bf5e (diff)
Fix fastmem building on ARM64 Macs (#841)
Diffstat (limited to 'src/ARMJIT_Memory.cpp')
-rw-r--r--src/ARMJIT_Memory.cpp15
1 files changed, 12 insertions, 3 deletions
diff --git a/src/ARMJIT_Memory.cpp b/src/ARMJIT_Memory.cpp
index ffc294f..33d6bcf 100644
--- a/src/ARMJIT_Memory.cpp
+++ b/src/ARMJIT_Memory.cpp
@@ -162,8 +162,13 @@ static void SigsegvHandler(int sig, siginfo_t* info, void* rawContext)
#endif
#else
- desc.EmulatedFaultAddr = (u8*)context->uc_mcontext.fault_address - curArea;
- desc.FaultPC = (u8*)context->uc_mcontext.pc;
+ #ifdef __APPLE__
+ desc.EmulatedFaultAddr = (u8*)context->uc_mcontext->__es.__far - curArea;
+ desc.FaultPC = (u8*)context->uc_mcontext->__ss.__pc;
+ #else
+ desc.EmulatedFaultAddr = (u8*)context->uc_mcontext.fault_address - curArea;
+ desc.FaultPC = (u8*)context->uc_mcontext.pc;
+ #endif
#endif
if (ARMJIT_Memory::FaultHandler(desc))
@@ -175,7 +180,11 @@ static void SigsegvHandler(int sig, siginfo_t* info, void* rawContext)
context->uc_mcontext.gregs[REG_RIP] = (u64)desc.FaultPC;
#endif
#else
- context->uc_mcontext.pc = (u64)desc.FaultPC;
+ #ifdef __APPLE__
+ context->uc_mcontext->__ss.__pc = (u64)desc.FaultPC;
+ #else
+ context->uc_mcontext.pc = (u64)desc.FaultPC;
+ #endif
#endif
return;
}