Gcc ARMv8 AArch32模式是否与armv4、armv5或armv6向后兼容?

Gcc ARMv8 AArch32模式是否与armv4、armv5或armv6向后兼容?,gcc,arm,armv7,armv6,Gcc,Arm,Armv7,Armv6,正如我们所知,ARMv8 AArch32位模式与ARMv7体系结构完全向后兼容。ARMv7与ARMv4、ARMv5te、ARMv6向后兼容 从上面的语句中,我们可以说ARMv8 AArch32模式也具有与ARMv4、ARMv5te和ARMv6的向后兼容。i、 使用ARMv4、ARMv5te或ARMv6编译的代码可以在ARMv8 AArch32模式下运行?简单的答案是AArch32与ARMV7一样向后兼容于v4,5,6。如果您的传统ARM代码在V7上运行,那么它肯定会在AARCH32上运行。答案是

正如我们所知,ARMv8 AArch32位模式与ARMv7体系结构完全向后兼容。ARMv7与ARMv4、ARMv5te、ARMv6向后兼容


从上面的语句中,我们可以说ARMv8 AArch32模式也具有与ARMv4、ARMv5te和ARMv6的向后兼容。i、 使用ARMv4、ARMv5te或ARMv6编译的代码可以在ARMv8 AArch32模式下运行?

简单的答案是AArch32与ARMV7一样向后兼容于v4,5,6。如果您的传统ARM代码在V7上运行,那么它肯定会在AARCH32上运行。

答案是肯定的。如果它不起作用,所有带有本机ARM代码的Android应用程序将无法在ARM64设备上运行。上的向后兼容性适用于汇编指令本身。由于许多其他原因,为ARMv4编译的代码可能无法在ARMv8上工作。看,这取决于上下文——例如,对于Linux/Android用户空间程序,您可能会注意到的唯一一件事是SWP指令的消失,即使是最新的64位内核也会在compat层中模拟它。在系统层面上,v7的变化有些大,但未经修改的v4系统代码几乎肯定无法在v6上正常工作,更不用说以后了。谷歌用户还应该记住,aarch32在ARMv7上有一些扩展。