And your example does not work. The AMD64 archetechure is a lot closer to the IA32 arc, and the AMD64 ISA has the same instrucion encodings for many instructions. Not to mention that the AMD64 ISA is capable of running IA32 code while in long mode, without the hoops that are needed for running traditional ARM code in AARCH64 mode.Heater wrote: ↑Sun Dec 02, 2018 11:13 pmDavidS,Why?I would have thought that ARM wold have stuck a little closer to an ARM like ISA.
The move from 32 to 64 bits is a big one. Requiring a lot of compiler and tools development and so on. It's a good opportunity to ditch all the junk you have been hoarding for years that never turned out to be useful. Perhaps adopt some new techniques.
Same happened with the move from Intel's 32 bit architecture to AMD's 64.
While I dislike IA32 and AMD64 (having coded for it enough) I have to give credit to the fact that the transistion to AMD64 did not break everything (it only broke 16-bit stuff, and not baddly).
Though I have to give ARM credit in that they have clearely defined that AARCH32 is here to stay on AARCH64 processors, as that is part of the AARCH64 specification. Unfortunately if I want to run AARCH32 code in a AARCH64 environment I have to get the OS to switch the entire systems out of AARCH64 (not very easy BTW) run the code (with inturupts dissabled, or using speciall AARCH32 handlers) switch back into AARCH64 so that the rest of the system can run. That is not a good design, not when you have a stockpile of original software (much of which is still perfectly safe) dating back 30+ years, much of which the original source has long since been lost (and remakes almost neaver live up to the originals).