Initial patches for ARM64EC (Windows 11) now posted

ARM64EC is a new Windows ABI designed to allow running native ARM64 code in the same process as x64 emulated code. Basic documentation is available at Understanding Arm64EC ABI and assembly code - UWP applications | Microsoft Docs .

I’ve posted an initial series of patches, starting with https://reviews.llvm.org/D125411 , which lay the groundwork for supporting this ABI in LLVM and clang. The major missing piece with those patches is the support for what the ABI calls “entry thunks” and “exit thunks”; I’m planning to work on that next.

I expect Microsoft will make more compiler-oriented documentation available at some point, but not sure when. (In particular, the hybmp$x section, which describes the thunks emitted by the compiler, currently isn’t documented at all.)

Please ask here if you have any general questions about this effort, or if you want to coordinate work.

Thanks for looking into this! I have a general interest in the area, but I haven’t really had time to look into it properly, so I don’t have much concretely to add. Thanks for the link to the documentation - when ARM64EC was released initially, those docs weren’t available yet.