Probably the most confused looks I get from other developers when I discuss Windows and ARM64 is when I used the term “ARM64EC”. They ask is the same thing as ARM64? Is it a different instruction set than ARM64? How can you tell if an application is or ARM64 ARM64EC?This tutorial will answer those questions by de-mystifying and explaining the difference between what can be called “classic ARM64” as it existed since Windows 10, and this new “ARM64EC” which was introduced in Windows 11 in 2021.
↫ Darek Mihocka
I’m not going to steal the article’s thunder, but the short of it is that the ‘EC’ stands for ‘Emulation Compatible’, meaning it can call unmodified x86-64 code. ARM64X, meanwhile, is an extended version of Windows PE that allows both ARM64 and emulated x86-64 code to coexist in the same binary (which is not the same as a fat binary, which is an either/or situation). There is a whole lot more to this subject – and I truly mean a lot, this a monster of an in-depth article – so be sure to head on over and read it in full. You’ll be busy for a while.
Hey Thom i think the idea of fat binary is exactly to allow code from multiple architectures to coexist in the same binary.
Perhaps what you had in mind is it allows arch different code sections to be *loaded* into address space and executed as part of one app?