diff --git a/Source/Windows/ARM64EC/Module.cpp b/Source/Windows/ARM64EC/Module.cpp index 3be7e465a..167ae2777 100644 --- a/Source/Windows/ARM64EC/Module.cpp +++ b/Source/Windows/ARM64EC/Module.cpp @@ -903,6 +903,11 @@ bool ResetToConsistentStateImpl(const ThreadCPUArea CPUArea, EXCEPTION_RECORD* E return true; } + if (NativeContext->Pc == reinterpret_cast(&FEXCore::Assert::ForcedAssert)) { + LogMan::Msg::DFmt("FEX: Forced assert"); + NtTerminateProcess(NtCurrentProcess(), 0x42); + } + if (!IsJIT && !IsDispatcherAddress(NativeContext->Pc)) { LogMan::Msg::DFmt("Passing through exception"); return false; diff --git a/Source/Windows/WOW64/Module.cpp b/Source/Windows/WOW64/Module.cpp index 5660dcf39..b998af8d6 100644 --- a/Source/Windows/WOW64/Module.cpp +++ b/Source/Windows/WOW64/Module.cpp @@ -833,6 +833,11 @@ bool BTCpuResetToConsistentStateImpl(EXCEPTION_POINTERS* Ptrs) { } } + if (Context->Pc == reinterpret_cast(&FEXCore::Assert::ForcedAssert)) { + LogMan::Msg::DFmt("FEX: Forced assert"); + NtTerminateProcess(NtCurrentProcess(), 0x42); + } + if (!Thread || !IsAddressInJit(Context->Pc)) { return false; }