5.12.5. VLDn 和 VSTn(多个 n 元素结构)

向量加载多个 n 元素结构。 它使用反向交叉存取功能,将多个 n 元素结构从内存加载到一个或多个 NEON 寄存器中(除非 n == 1)。 会加载每个寄存器的每个元素。

向量存储多个 n 元素结构。 它使用交叉存取功能,将多个 n 元素结构从一个或多个 NEON 寄存器存储到内存中(除非 n == 1)。 会存储每个寄存器的每个元素。

语法

Vopn{cond}.datatype list, [Rn{@align}]{!}
Vopn{cond}.datatype list, [Rn{@align}], Rm

其中:

op

必须为 LDST

n

必须为 1、2、3 或 4 之一。

cond

是一个可选的条件代码(请参阅条件代码)。

datatype

有关选项,请参阅Table 5.14

list

指定 NEON 寄存器列表。 有关选项,请参阅Table 5.14

Rn

是包含基址的 ARM 寄存器。 Rn 不能为 r15。

align

指定可选对齐。 有关选项,请参阅Table 5.14

!

如果有 ! 存在,则将 Rn 更新为(Rn + 指令传送的字节数)。 在完成所有加载或存储后,执行该更新。

Rm

是一个包含基址偏移量的 ARM 寄存器。 如果 Rm 存在,则在使用该地址访问内存之后,会将 Rn 更新为 (Rn + Rm)。 Rm 不能为 r13 或 r15。

Table 5.14. 允许的参数组合

ndatatypelist [1]align [2]alignment
18163264{Dd}@648 字节
  {Dd, D(d+1)}@64@1288 字节或 16 字节
  {Dd, D(d+1), D(d+2)}@648 字节
  {Dd, D(d+1), D(d+2), D(d+3)}@64@128@2568 字节、16 字节或 32 字节
281632{Dd, D(d+1)}@64, @1288 字节或 16 字节
  {Dd, D(d+2)}@64, @1288 字节或 16 字节
  {Dd, D(d+1), D(d+2), D(d+3)}@64@128@2568 字节、16 字节或 32 字节
381632{Dd, D(d+1), D(d+2)}@648 字节
  {Dd, D(d+2), D(d+4)}@648 字节
481632{Dd, D(d+1), D(d+2), D(d+3)}@64@128@2568 字节、16 字节或 32 字节
  {Dd, D(d+2), D(d+4), D(d+6)}@64@128@2568 字节、16 字节或 32 字节

[1] list 中的每个寄存器都必须位于范围 D0 到 D31 内。

[2] Align 可省略。 在这种情况下,将应用标准对齐规则,详情请参阅加载和存储元素和结构指令中的对齐限制


Copyright © 2002-2008 ARM Limited. All rights reserved.ARM DUI 0204IC
Non-Confidential