You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Fix x64 and x86 emulation on arm64 Windows (dotnet#72693)
* Fix x64 and x86 emulation on arm64 Windows
The runtime was hanging or crashing when running on x64 and x86
emulation on Windows ARM64. Most of these failures were caused by
missing cache flushes after code updates where the emulator kept
executing arm64 code that it has jitted from the previous state of
the code.
There were also two CONTEXT related issues. One was that we were
assuming that AVX state is always supported. However, the emulator
doesn't support it, so SetXStateFeaturesMask(pCtx, XSTATE_MASK_AVX)
was failing and we have considered that a failure to capture thread
context.
The other one was that we have assumed that the CONTEXT we get in
Thread::RedirectCurrentThreadAtHandledJITCase is CONTEXT_COMPLETE,
but with the emulation, we one get CONTEXT_FULL, that means
CONTEXT_COMPLETE without the debug registers.
There were also two CoreCLR tests issues that caused failures under the
emulation, I have fixed those.
* Add hasCodeExecutedBefore argument to ClrFlushInstructionCache
0 commit comments