【NEON 和 VFP 编程】NEON 和 VFP 共享的指令

NEON 和 VFP 共享的指令包括以下内容:

1.VLDR 和 VSTR

扩展寄存器加载和存储。

2.VLDM、VSTM、VPOP 和 VPUSH

扩展寄存器加载多个和存储多个。

3.VMOV(在两个 ARM 寄存器和一个扩展寄存器之间)

在两个 ARM 寄存器和一个 64 位扩展寄存器之间传送内容。

4.VMOV(在一个 ARM 寄存器和一个 NEON 标量之间)

在一个 ARM 寄存器和半个 64 位扩展寄存器之间传送内容。

5.VMOV(在一个 ARM 寄存器和一个单精度 VFP 之间)

在一个 32 位扩展寄存器和一个 ARM 寄存器之间传送内容。

6.VMRS 和 VMSR

在一个 ARM 寄存器与一个 NEON 和 VFP 系统寄存器之间传送内容。

在没有特殊注明的情况下,本系列学习小节中,都是采用Android平台运行NEON与VFP指令的。NDK编程中,采用内联汇编的方式。

一、VLDR 和 VSTR

扩展寄存器加载和存储。

语法

VLDR{cond}{.size} Fd, [Rn{, #offset}]

VSTR{cond}{.size} Fd, [Rn{, #offset}]

VLDR{cond}{.size} Fd, label

VSTR{cond}{.size} Fd, label

其中:

cond 是一个可选的条件代码。

size 是一个可选的数据大小说明符。 如果 Fd 是单精度 VFP 寄存器,则必须为 32;否则必须为 64。

Fd 是要加载或保存的扩展寄存器。 对于 NEON 指令,它必须为 Dd。 对于 VFP 指令,它可以为 Dd 或 Sd。

Rn 是存放要传送的基址的 ARM 寄存器。

offset 是一个可选的数值表达式。 在汇编时,该表

猜你喜欢

转载自blog.csdn.net/tyyj90/article/details/102879871