4

As we know that ARMv8 AArch32 bit mode is fully backward compatible with ARMv7 architecture. And ARMv7 has backward compatibly with ARMv4 , ARMv5te and ARMv6.

From above statement, can we say that ARMv8 AArch32 mode also has backward compatible with ARMv4 , ARMv5te and ARMv6. i.e Code compiled with ARMv4 , ARMv5te or ARMv6 can run on ARMv8 AArch32 mode?

hmb
  • 83
  • 3
  • 10
  • The answer is YES. If it didn't work, all of the Android apps with native ARM code wouldn't work on ARM64 devices. – BitBank Aug 06 '15 at 16:26
  • The backwards compatibility on applies to the assembly instructions themselves. Code compiled for ARMv4 might not work on a ARMv8 for a host of other reasons. See http://stackoverflow.com/questions/19608570/what-parts-of-armv4-5-6-code-will-not-work-on-armv7 – Ross Ridge Aug 06 '15 at 16:45
  • 3
    It depends on the context - for, say, a Linux/Android userspace program, the only thing you might possibly notice is the disappearance of the SWP instruction, and even then more recent 64-bit kernels will emulate that in the compat layer. At the system level, the changes over v7 are somewhat bigger, but unmodified v4 system code almost certainly wouldn't work properly on v6, let alone anything later. – Notlikethat Aug 06 '15 at 21:44
  • Googlers should also keep in mind that aarch32 has some extensions over ARMv7. – Ciro Santilli Feb 08 '19 at 14:29

1 Answers1

1

Simple answer is AARCH32 is as backward compatible to v4,5,6 as much as ARM V7 is. If your legacy ARM code worked on V7 it would definitely work on AARCH32.