diff options
author | bruvzg <7645683+bruvzg@users.noreply.github.com> | 2022-08-26 12:55:23 +0300 |
---|---|---|
committer | bruvzg <7645683+bruvzg@users.noreply.github.com> | 2022-08-27 16:10:53 +0300 |
commit | 8dab4a2aa3a078968e3df641ee607e1fb51ddfe2 (patch) | |
tree | a83d6ca12e39f1acd620db1418635e7772cccf74 /platform/windows/crash_handler_windows.cpp | |
parent | 85ef0a1058fb0acbf550b8d3674d02d9023de82b (diff) | |
download | redot-engine-8dab4a2aa3a078968e3df641ee607e1fb51ddfe2.tar.gz |
[Windows] Improve build environment detection, add support for Windows on ARM.
Diffstat (limited to 'platform/windows/crash_handler_windows.cpp')
-rw-r--r-- | platform/windows/crash_handler_windows.cpp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/platform/windows/crash_handler_windows.cpp b/platform/windows/crash_handler_windows.cpp index 6ce10e6f0f..b501ee78db 100644 --- a/platform/windows/crash_handler_windows.cpp +++ b/platform/windows/crash_handler_windows.cpp @@ -173,10 +173,18 @@ DWORD CrashHandlerException(EXCEPTION_POINTERS *ep) { frame.AddrStack.Mode = AddrModeFlat; frame.AddrFrame.Mode = AddrModeFlat; -#ifdef _M_X64 +#if defined(_M_X64) frame.AddrPC.Offset = context->Rip; frame.AddrStack.Offset = context->Rsp; frame.AddrFrame.Offset = context->Rbp; +#elif defined(_M_ARM64) || defined(_M_ARM64EC) + frame.AddrPC.Offset = context->Pc; + frame.AddrStack.Offset = context->Sp; + frame.AddrFrame.Offset = context->Fp; +#elif defined(_M_ARM) + frame.AddrPC.Offset = context->Pc; + frame.AddrStack.Offset = context->Sp; + frame.AddrFrame.Offset = context->R11; #else frame.AddrPC.Offset = context->Eip; frame.AddrStack.Offset = context->Esp; |