本文主要是介绍【NEON 和 VFP 编程】扩展寄存器组,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
NEON 是适用于 ARM Cortex-A 系列处理器的一种128位 SIMD(Single Instruction, Multiple Data, 单指令、多数据)扩展结构。
VFP 代表用于矢量运算的矢量浮点架构。迄今为止,VFP 主要有三个版本:
VFPv1 已废弃;
VFPv2 是对 ARMv5TE、ARMv5TEJ 和 ARMv6 架构中 ARM 指令集的可选扩展;
VFPv3 是对 ARMv7-A 和 ARMv7-R 配置文件中 ARM、 Thumb®® 和 ThumbEE 指令集的可选扩展。可使用 32 个或 16 个双字长寄存器实现 VFPv3。术语 VFPv3-D32 和 VFPv3-D16 用于区别这两个实现选项。扩展 VFPv3 使用半精度扩展,可在半精度浮点和单精度浮点之间提供双向转换功能。
NEON 和 VFPv3 使用相同的扩展寄存器组。该寄存器组不同于 ARM 寄存器组。它是 VFPv2 寄存器组的超集。
寄存器之间的映射如下所示:
• S<2n> 映射到 D 的最低有效半部
• S<2n+1> 映射到 D 的最高有效半部
• D<2n> 映射到 Q 的最低有效半部
• D<2n+1> 映射到 Q 的最高有效半部
例如,通过引用 D12 可以访问 Q6 中向量元素的最低有效半部,通过引
这篇关于【NEON 和 VFP 编程】扩展寄存器组的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!