|
|
Subscribe / Log in / New account

Supporting 64-bit ARM systems

Supporting 64-bit ARM systems

Posted Jul 11, 2012 14:12 UTC (Wed) by mwsealey (subscriber, #71282)
In reply to: Supporting 64-bit ARM systems by gidoca
Parent article: Supporting 64-bit ARM systems

The instruction encoding is different though. ARM 32 and 64 are mutually incompatible at that level even if the source code looks similar. That said, AArch64 and ARMv8-A has ARMv7-A compatibility built-in the same way you can run Thumb and ARM code together these days. So there's no reason you can't run the old stuff in a 32-bit execution mode, the problem here is that the kernel itself absolutely has to run in 64-bit mode to manage this. The ability to run all this "legacy" code is going to be restricted to userspace.

It's not like PPC where the instruction encodings are identical to a high degree and 64-bit code barely has a handful of extra instructions for dealing with 64-bit values directly. Power Architecture was designed very, very well from the beginning, and the mnemonics are identical and the generated bytecode is identical barring the 64-bit specifics. You can't say that about ARM. ARM decided to reinvent the architecture to get rid of all that cruft (but they have to keep compatibility with at least the ARMv7).

Most of the available userspaces are going to stay ARMv7-A for a long, long time.. like running a 64-bit kernel with a 32-bit userspace is common on x86 these days (and x32 just compounds it). Those that need to have 64-bit userspaces will have them..


to post comments

Supporting 64-bit ARM systems

Posted Jul 11, 2012 22:02 UTC (Wed) by ncm (guest, #165) [Link]

Perhaps I'm dating myself just a little, but this looks like the 8085->8086 transition. There was no 8080 code out that would run on the 8086. 8086 did retain the weird side effects of 8080 arithmetic and attendant conditionals, so transcoding was easy to automate. 8085+1=8086 was a shuck that worked.

DEC provided a translator from x86 to Alpha, and the translated code ran lots faster on Alpha than the original code did on x86. IIRC, interpreted x86 ran as fast as x86. It didn't save them in the end. How the market will respond to a new architecture depends on details, and nobody knows which details will turn out to be important.

Compatibility can be a trap: IBM OS/2 ran windos programs unchanged. windos could not run OS/2 programs. Which target should you code for?


Copyright © 2025, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds