|
目前在Android上运行的主流CPU是ARM芯片,共有6套指令集,分别为:32位的ARM v5指令集,16位的thumb指令集,32位的ARM v7a指令集,16位和32位混合的thumb2指令集,32位的ARM v7a带Neon的指令集,还有64位的ARM v8a指令集。
自AnyChat r6323版本开始,AnyChat正式支持ARM-v8a指令集,大幅提升性能,同时全面兼容Android N内核。
附:
ARM架构简史
我们用NDK编译一个jni库之后会发现,生成了armeabi,armeabi-v7a,arm64-v8a三个目录。这三个目录,代表了ARM目前最流行的三种架构的指令集。
ARM芯片从1985年诞生以来,经历了主要6次大的架构调整。
1. ARMv4及之前:只使用32位的ARM指令集。
2. ARMv4T,在32位ARM指令集的基础上,增加了16位的Thumb指令集。这是第一个被广泛使用的架构,代表芯片ARM7TDMI和ARM9TDMI。
3. ARMv5TE,增加了DSP操作,饱和算法,ARM和Thumb切换。代表芯片:ARM926EJ-S。
4. ARM v6,对内存访问的架构有所调整,支持SIMD指令。代表芯片:ARM1136JF-S。这一代Thumb2成为可选项。
5. ARM v7-A,将v6时可选的Thumb2指令集变成必选项,支持NEON指令。代表芯片Cortex-A8, A9, A15, A17。
6. ARMv8-A,支持两种架构,64位的AArch64和AArch32。其中,AArch32跟原有的v7-A架构是基本一样的。代表芯片为A57, A53, A73, A72.
我们通常见到的armeabi,实际上对应的是ARM v4T~v6的指令。为了节省空间,我们基本上都编成16位的Thumb指令。armeabi-v7a,对应v7-A架构。arm64-v8a对应ARM v8-A的AArch64指令。
我们习惯上,把ARM v4之前就有的基础的32位ARM指令集称为A32指令集,16位的Thumb指令称为T16指令集,AArch64指令集称为A64指令集。
|
|