From 8d1d3fe12b3dbbc344368ff485bcbcda33f327ea Mon Sep 17 00:00:00 2001 From: Billy Laws Date: Thu, 17 Jul 2025 17:19:29 +0100 Subject: [PATCH] Windows: Implement SyscallHandler code range invalidation --- Source/Windows/ARM64EC/Module.cpp | 4 ++++ Source/Windows/WOW64/Module.cpp | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/Source/Windows/ARM64EC/Module.cpp b/Source/Windows/ARM64EC/Module.cpp index 71a87f26d..fe1d27f57 100644 --- a/Source/Windows/ARM64EC/Module.cpp +++ b/Source/Windows/ARM64EC/Module.cpp @@ -572,6 +572,10 @@ public: InvalidationTracker->ReprotectRWXIntervals(Start, Length); } + void InvalidateGuestCodeRange(FEXCore::Core::InternalThreadState* Thread, uint64_t Start, uint64_t Length) override { + InvalidationTracker->InvalidateAlignedInterval(Start, Length, false); + } + void MarkOvercommitRange(uint64_t Start, uint64_t Length) override { OvercommitTracker->MarkRange(Start, Length); } diff --git a/Source/Windows/WOW64/Module.cpp b/Source/Windows/WOW64/Module.cpp index fe9f08ced..8e84194a9 100644 --- a/Source/Windows/WOW64/Module.cpp +++ b/Source/Windows/WOW64/Module.cpp @@ -452,6 +452,10 @@ public: InvalidationTracker->ReprotectRWXIntervals(Start, Length); } + void InvalidateGuestCodeRange(FEXCore::Core::InternalThreadState* Thread, uint64_t Start, uint64_t Length) override { + InvalidationTracker->InvalidateAlignedInterval(Start, Length, false); + } + void MarkOvercommitRange(uint64_t Start, uint64_t Length) override { OvercommitTracker->MarkRange(Start, Length); }