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 指令,它必须为 D 寄存器。 对于 VFP 指令,它可以为 D 或 S 寄存器。

Rn

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

offset

是一个可选的数值表达式。 在汇编时,该表达式的值必须为一个数字常数。 该值必须是 4 的倍数,并在 –1020 到 +1020 的范围内。 该值与基址相加得到用于传送的地址。

label

是一个程序相对的表达式。 有关详细信息,请参阅相对寄存器和程序相对的表达式

label 必须位于当前指令的 ±1KB 范围之内。

用法

VLDR 指令可从内存中加载一个扩展寄存器。 VSTR 指令可将一个扩展寄存器的内容保存到内存中。

如果 Fd 是单精度寄存器(仅限 VFP),则传送一个字。 否则传送两个字。

还有一个 VLDR 伪指令(请参阅VLDR 伪指令)。

 

 

 

VLDR 伪指令

VLDR 伪指令将一个常数值加载到 64 位 NEON 向量的每个元素,或者加载到 VFP 单精度或双精度寄存器。

Note

本节仅介绍 VLDR 指令。 有关 VLDR 指令的信息,请参阅VLDR 和 VSTR

语法
VLDR{cond}.datatype Dd,=constant
VLDR{cond}.datatype Sd,=constant

其中:

datatype

必须是下列值之一:

In

仅限 NEON

Sn

仅限 NEON

Un

仅限 NEON

F32

NEON 或 VFP

F64

仅限 VFP

n

必须为 8、16、32 或 64 之一。

cond

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

DdSd

是要加载的扩展寄存器。

constant

datatype 的相应类型的常数。

用法

如果某一指令(如 VMOV)可用于直接将常数生成到寄存器中,则汇编器将使用该指令。 否则,汇编器生成一个包含常数的双字文字池条目,并使用 VLDR 指令加载该常数。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Cortex-M55处理器中的矢量预测VRP寄存器是一个32位的寄存器,其中每个位都有特定的含义。以下是每个位的解释: - Bit[0]:保留位,必须为0。 - Bit[1]:表示下一条指令是否为矢量指令(0表示不是,1表示是)。 - Bit[2]:表示下一条指令是否为VLD或VST指令(0表示不是,1表示是)。 - Bit[3]:保留位,必须为0。 - Bit[4]:表示下一条指令是否为VOP指令(0表示不是,1表示是)。 - Bit[5]:表示下一条指令是否为VLDRVSTR指令(0表示不是,1表示是)。 - Bit[6]:表示下一条指令是否为VMVN指令(0表示不是,1表示是)。 - Bit[7]:表示下一条指令是否为VADD指令(0表示不是,1表示是)。 - Bit[8]:表示下一条指令是否为VMOV指令(0表示不是,1表示是)。 - Bit[9]:表示下一条指令是否为VORR指令(0表示不是,1表示是)。 - Bit[10]:表示下一条指令是否为VQADD指令(0表示不是,1表示是)。 - Bit[11]:表示下一条指令是否为VQMOVN指令(0表示不是,1表示是)。 - Bit[12]:表示下一条指令是否为VQMOVUN指令(0表示不是,1表示是)。 - Bit[13]:表示下一条指令是否为VQRSHL指令(0表示不是,1表示是)。 - Bit[14]:表示下一条指令是否为VQRSHRN指令(0表示不是,1表示是)。 - Bit[15]:表示下一条指令是否为VQSHL指令(0表示不是,1表示是)。 - Bit[16]:表示下一条指令是否为VQSHRN指令(0表示不是,1表示是)。 - Bit[17]:表示下一条指令是否为VREV指令(0表示不是,1表示是)。 - Bit[18]:表示下一条指令是否为VRSHL指令(0表示不是,1表示是)。 - Bit[19]:表示下一条指令是否为VRSHR指令(0表示不是,1表示是)。 - Bit[20]:表示下一条指令是否为VSHL指令(0表示不是,1表示是)。 - Bit[21]:表示下一条指令是否为VSHR指令(0表示不是,1表示是)。 - Bit[22]:表示下一条指令是否为VSRA指令(0表示不是,1表示是)。 - Bit[23]:表示下一条指令是否为VST1指令(0表示不是,1表示是)。 - Bit[24]:表示下一条指令是否为VSUB指令(0表示不是,1表示是)。 - Bit[25]:表示下一条指令是否为VTRN指令(0表示不是,1表示是)。 - Bit[26]:表示下一条指令是否为VTST指令(0表示不是,1表示是)。 - Bit[27]:表示下一条指令是否为VUZP指令(0表示不是,1表示是)。 - Bit[28]:表示下一条指令是否为VZIP指令(0表示不是,1表示是)。 - Bit[29]:保留位,必须为0。 - Bit[30]:保留位,必须为0。 - Bit[31]:保留位,必须为0。 这些位的值可以用于预测下一条指令是否是矢量指令,并且为矢量指令提供更好的预取和预执行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值