Last year, Microsoft announced x64 compatibility for Windows 11 on Arm, along with the new Arm64EC ABI, a new way to bring apps to Windows on Arm. With Arm64EC you can mix Arm and x64 code in the same process, allowing you to port existing x64 apps to Arm in an incremental way. We also announced experimental support for Arm64EC development in Visual Studio.
Now, after a year of bug fixes and product stabilization, we are here to announce that this toolset is leaving experimental mode in the 17.3 release, making it possible to build fully-supported Arm64EC applications for Windows 11 on Arm. We hope that using Arm64EC makes it easier for developers to target Windows on Arm, especially for applications that are blocked today from moving to Arm due to x64 plugins or dependencies.
Learn More about Arm64EC
Want to learn more about Arm64EC to determine if it is the best solution for your porting efforts? We have several resources detailing how Arm64EC works and how to use it, compiled here for your convenience.
- For getting started on building Arm64EC applications, check out this documentation on how to get the tools you’ll need.
- To see an end-to-end example of using x64 plugins for digital audio workstations, check out this post: Load x64 Plug-ins (like VSTs) from your Arm Code using Arm64EC.
- You can also build binaries that can be used by both Arm64 and Arm64EC/x64 processes on Windows on Arm devices. To learn more about this binary format and how to build them, check out this documentation on Arm64X binaries.
- For a more in-depth understanding of Arm64EC as an ABI and how the interoperability with emulated x64 works, check out the documentation on Arm64EC assembly and the ABI.
What’s Next?
We are planning continued support for the toolchain in upcoming releases, with the intent of supporting the __vectorcall
calling convention in Arm6EC as well as tackling performance optimizations. If you want to get in contact with us regarding issues with the toolchain or any feedback about its usage, we’re always listening on Developer Community.
0 comments