Microsoft Announces ARM64EC

Posted on June 28, 2021 by Paul Thurrott in Windows 11 with 18 Comments

Microsoft today announced ARM64EC, a new way for developers to build native apps for Windows 11 on ARM. This technology is being used by Microsoft Office and Visual Studio, and it lets developers mix and match native ARM64 code with emulated x86/x64 code in the same process.

“ARM64EC is a new application binary interface (ABI) for Windows 11 on ARM that runs with native speed and is interoperable with x64,” Microsoft’s Marc Sweetgall explains. “An app, process, or even a module can freely mix and match ARM64EC and x64 as needed. The ARM64EC code in the app will run natively while any x64 code will run using Windows 11 on ARM’s built-in emulation.”

In the past, developers interested in creating apps that ran on Windows on ARM were forced to recompile the entire app. With ARM64EC, developers can bring over parts of an existing app one at a time, identifying those codebases that would benefit the most from running natively. The rest of the app, meanwhile, will simply run in emulated mode. Over time, developers can choose to recompile more of their apps as ARM64EC, as needed, improving the PC’s performance and battery life.

ARM64EC also makes it much easier to port over apps that support add-ons and third-party dependencies. Both Office and Visual Studio fall into this category.

“We’re motivated by the potential of ARM64EC and excited to see the kinds of apps developers can build for Windows 11 on ARM using this technology,” Sweetgall says. “Internally, we’ve rebuilt the binaries of Windows 11 on ARM itself with ARM64EC so that any system code loaded by x64 apps runs with native speed.  In addition, the Office team is using ARM64EC in the coming 64-bit Office for ARM so that existing x64 plugins will work seamlessly.”

Tagged with ,

Join the discussion!

BECOME A THURROTT MEMBER:

Don't have a login but want to join the conversation? Become a Thurrott Premium or Basic User to participate

Register
Comments (18)

18 responses to “Microsoft Announces ARM64EC”

  1. dallasnorth40

    Wow, maybe it's time to take another look at that Surface Pro X.

  2. lvthunder

    You would have thought they would have talked about this at Build.

  3. Truffles

    Wow. That sounds like it's going to be one hell of a buggy mess. I pity the devs tasked with maintaining those programs.

    • codymesh

      ??? not requiring a wholesale re-compile is a godsend for devs, especially for complex applications that surely take time to port. This helps them maintain the program easier

      • bkkcanuck

        The issue I see -- is the complex pieces are almost always going to be performance will be gained... I also think there will be more issues introduced by trying to piecemeal it, but maybe that is the point... get the devs to release a half done app -- get lots of feedback after they have sort of been locked in about how crappy it is... and then they have to rush to fix it by doing the hole thing.

  4. james.h.robinson

    This is great news, Mr. Thurrott. Thanks for authoring this article, it made my Monday.

  5. locust_infested_orchard_inc.

    Articles' quotes:


    "Internally, we’ve rebuilt the binaries of Windows 11 on ARM itself with ARM64EC so that any system code loaded by x64 apps runs with native speed"


    "any x64 code will run [on ARM] using Windows 11 on ARM’s built-in emulation"


    So does this mean ARM's built-in x64 emulation shall allow pure x64 applications to run at native speed, or the running at native speed only applies to dual-coded applications (part ARM, part x64 = "mix and match ARM64EC and x64" ?

    • SWCetacean

      Only the arm64 parts of programs will run at native speed. The x64 parts will run with the emulation penalty. The wording is not that clear, but it comes from the "any system code loaded by x64 apps" part. System code probably means system-level libraries that are consumed by the apps.


      In other words, this looks like a super-charged version of CHPE (compiled hybrid portable executable) technology used for x86 emulation that is now extended to x64 and available for developers to use.

  6. arnstarr

    It's great how MS are supporting all historic ARM based products with Windows 11. Right back to Snapdragon 850.

    People with those older ARM CPU products will be pleased.

Leave a Reply