Имеет ли режим ARMv8 AArch32 обратную совместимость с armv4, armv5 или armv6?

Как мы знаем, битовый режим ARMv8 AArch32 полностью обратно совместим с архитектурой ARMv7. И ARMv7 имеет обратную совместимость с ARMv4, ARMv5te и ARMv6.

Из приведенного выше утверждения можно сказать, что режим ARMv8 AArch32 также имеет обратную совместимость с ARMv4, ARMv5te и ARMv6. код, скомпилированный с ARMv4, ARMv5te или ARMv6, может работать в режиме ARMv8 AArch32?


person hmb    schedule 06.08.2015    source источник
comment
Ответ ДА. Если бы это не сработало, все приложения Android с собственным кодом ARM не работали бы на устройствах ARM64.   -  person BitBank    schedule 06.08.2015
comment
Обратная совместимость относится к самим инструкциям по сборке. Код, скомпилированный для ARMv4, может не работать на ARMv8 по множеству других причин. См. stackoverflow.com/questions/19608570/   -  person Ross Ridge    schedule 06.08.2015
comment
Это зависит от контекста — например, для программы пользовательского пространства Linux/Android единственное, что вы можете заметить, — это исчезновение инструкции SWP, и даже в этом случае более поздние 64-битные ядра будут эмулировать это на уровне совместимости. На системном уровне изменения по сравнению с v7 несколько больше, но немодифицированный системный код v4 почти наверняка не будет работать должным образом в v6, не говоря уже о чем-либо более позднем.   -  person Notlikethat    schedule 07.08.2015
comment
Гуглеры также должны помнить, что aarch32 имеет некоторые расширения по сравнению с ARMv7.   -  person Ciro Santilli    schedule 08.02.2019


Ответы (1)


Простой ответ: AARCH32 так же обратно совместим с v4,5,6, как и ARM V7. Если ваш устаревший код ARM работал на V7, он определенно работал бы и на AARCH32.

person Arun Valiaparambil    schedule 07.08.2015