-
Notifications
You must be signed in to change notification settings - Fork 156
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add support for ARM64EC #607
Conversation
This is an ABI, not an architecture, and for the purposes of this crate the only thing it affects is the machine field in the header, so I'm reluctant to add this as a separate architecture. We can if you think it's the best choice, but alternatives to consider are:
|
@philipc I like the idea of using a sub-architecture to match LLVM. Question about the design though, should this be unified with |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks!
@philipc can we please get a new release that contains this change? |
Released 0.32.2 |
Arm64EC is a new ABI for Windows binaries that is designed to improve performance of emulated x64 apps on ARM64 devices: https://learn.microsoft.com/en-us/windows/arm/arm64ec
Within the COFF and PE formats, there is a new
IMAGE_FILE_MACHINE_ARM64EC
enum set to0xA641
: https://github.com/llvm/llvm-project/blob/3d1172813fc640514c6cb421394c34f4b42cb634/llvm/include/llvm/BinaryFormat/COFF.h#L101For relocations, Arm64EC is treated the same as AArch64.
I also updated the round-trip test for COFF to run for all supported architectures.