aboutsummaryrefslogtreecommitdiffstats
path: root/emulators/fbsd-duckstation/files/patch-src-util-page_fault_handler.cpp
blob: 5b1f40faca9613e1408400dced58952994d50058 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Fix build on arm64

--- src/util/page_fault_handler.cpp.orig	2024-06-14 05:59:32 UTC
+++ src/util/page_fault_handler.cpp
@@ -188,8 +188,8 @@ void PageFaultHandler::SignalHandler(int sig, siginfo_
   void* const exception_pc = reinterpret_cast<void*>(static_cast<ucontext_t*>(ctx)->uc_mcontext.mc_rip);
   const bool is_write = (static_cast<ucontext_t*>(ctx)->uc_mcontext.mc_err & 2) != 0;
 #elif defined(CPU_ARCH_ARM64)
-  void* const exception_address = reinterpret_cast<void*>(static_cast<ucontext_t*>(ctx)->uc_mcontext->__es.__far);
-  void* const exception_pc = reinterpret_cast<void*>(static_cast<ucontext_t*>(ctx)->uc_mcontext->__ss.__pc);
+  void* const exception_address = reinterpret_cast<void*>(info->si_addr);
+  void* const exception_pc = reinterpret_cast<void*>(static_cast<ucontext_t*>(ctx)->uc_mcontext.mc_gpregs.gp_elr);
   const bool is_write = IsStoreInstruction(exception_pc);
 #else
   void* const exception_address = reinterpret_cast<void*>(info->si_addr);