2015-08-06 3 views
2

Comme nous savons que le mode bit ARMv8 AArch32 est entièrement rétrocompatible avec l'architecture ARMv7. Et ARMv7 a rétrocompatibilité avec ARMv4, ARMv5te et ARMv6. De la déclaration ci-dessus, pouvons-nous dire que le mode ARMv8 AArch32 a également rétrocompatible avec ARMv4, ARMv5te et ARMv6. Le code i.e compilé avec ARMv4, ARMv5te ou ARMv6 peut-il fonctionner en mode ARMv8 AArch32?Le mode ARMv8 AArch32 est-il rétrocompatible avec armv4, armv5 ou armv6?

+0

La réponse est OUI. Si cela ne fonctionnait pas, toutes les applications Android avec code ARM natif ne fonctionneraient pas sur les appareils ARM64. – BitBank

+0

La rétrocompatibilité s'applique aux instructions de montage elles-mêmes. Le code compilé pour ARMv4 peut ne pas fonctionner sur un ARMv8 pour une foule d'autres raisons. Voir http://stackoverflow.com/questions/19608570/what-parts-of-armv4-5-6-code-will-not-work-on-armv7 –

+2

Cela dépend du contexte - pour, disons, un Linux/Programme de l'espace utilisateur Android, la seule chose que vous pourriez éventuellement remarquer est la disparition de l'instruction SWP, et même alors des noyaux 64 bits plus récents émuleront cela dans la couche compat. Au niveau du système, les changements sur la version 7 sont un peu plus importants, mais le code système v4 non modifié ne fonctionnerait certainement pas correctement sur la version 6, et encore moins sur tout ce qui se passera plus tard. – Notlikethat

Répondre

1

La réponse simple est AARCH32 est aussi rétrocompatible à v4,5,6 autant que ARM V7 est. Si votre ancien code ARM fonctionnait sur V7, il fonctionnerait certainement sur AARCH32.