ARMv8-A架構中引入的最重要的變化之一是為AArch64增加了一個新的指令集。 該指令集包含許多與現(xiàn)有AArch32(ARMv7-A)32位指令集相同的功能。
A64的加入提供了對64位寬整數(shù)寄存器和數(shù)據(jù)操作的訪問,并能夠使用64位指針指向內(nèi)存。 新指令稱為A64,并在AArch64執(zhí)行狀態(tài)下執(zhí)行。 ARMv8-A還包含原始的ARM指令集(現(xiàn)在稱為A32)和Thumb?(T32)指令集。
A32和T32都以AArch32狀態(tài)執(zhí)行,并提供與ARMv7-A的向后兼容性。 盡管它們在很多方面都相似,但是A64指令集與舊的ISA不同,編碼方式不同。 A64增加了一些額外的功能,同時也消除了可能限制高性能實現(xiàn)的速度或能源效率的其他功能。 ARMv8-A體系結構還包括對32位指令集(A32和T32)的一些增強。 但是,如有使用這些新特性的代碼與舊版ARMv7-A實現(xiàn)不兼容。 但是,A64指令集中的指令操作碼仍然是32位長,而不是64位。
A64指令集還提供了與A32相關的額外尋址模式,通過訪問大小對索引進行可選的縮放,允許將64位索引寄存器添加到64位基址寄存器中。 此外,它還提供了一個索引寄存器中的32位值的符號或零擴展,同樣可以選擇性地進行縮放。
原文
https://developer.arm.com/products/architecture/a-profile/docs/100878/latest/a64-instructions