If you’re a fan of Windows 11, it’s a big day. Microsoft has released the first build of Windows 11, clarified while (mostly) sticking to its stance on blocking pre 8th gen CPUs, and has also announced a new “Emulation Compatible” binary interface for Windows 11 on ARM, called ARM64EC. The new interface allows developers to transition their apps to run with native speed on ARM, even if they “dependencies or plugins that don’t support ARM yet.”
The ARM64EC can “freely mix and match” between ARM64EC emulation layer and native ARM 64 by runnining ARM64EC in (parts of) an app, while any ARM 64 native code will run using Windows 11 on ARM’s built in emulation.
Microsoft describes the benefits to developers in a blog post:
Traditionally, rebuilding an app for ARM has meant recompiling the entire app. The result is a great native experience for the customer that unlocks the full power of the ARM device. However, from a developer perspective, porting an app can be all-or-nothing, since all the binaries within a process need to be rebuilt before a customer can see the benefit.
With ARM64EC, you can choose to start small and build incrementally. You can identify a part of your codebase that would benefit most from native performance and rebuild it as ARM64EC. The rest of the app will remain fully functional as emulated x64, but the recompiled ARM64EC parts will now have native speed. Over time, you can recompile more of the app as ARM64EC to further improve performance and conserve battery life for your app’s customers.