VST/VLD 实际上是做啥的?
Posted
技术标签:
【中文标题】VST/VLD 实际上是做啥的?【英文标题】:What VST/VLD actually do?VST/VLD 实际上是做什么的? 【发布时间】:2016-07-15 02:12:06 【问题描述】:下面两行代码究竟会发生什么?
vst1.64 d8, d9, d10, d11, [r4:128]!
vst1.64 d12, d13, d14, d15, [r4:128]
更一般地说,我想知道 VST 和 VLD 自从 doc 以来做了什么: ARM InfoCenter 对我来说不是很清楚。
【问题讨论】:
【参考方案1】:vst1.64 d8, d9, d10, d11, [r4:128]!
该指令将寄存器 d8、d9、d10 和 d11 的内容存储在 r4 指向的位置。提示此位置与 128 位边界对齐。之后 r4 将增加存储的字节数。在您的情况下,这些将是 32(四乘以 8 个字节)
vst1.64 d12, d13, d14, d15, [r4:128]
该指令与上述相同,但存储 d12、d13、d14 和 d15。 R4 不会增加,而是留在原处。
【讨论】:
值得一提的是,寄存器列表的有效模式有严格的限制。从链接的文档中,它们必须是 4 个连续的寄存器,或者步长为 2。所以你不能像vst1.64 d9, d8, d11, d10, [dst]
这样的商店免费洗牌。我假设机器编码只对第一个寄存器进行编码,并且为 stride=1 或 2 多编码一位。
@Nils Pipenbrinch 谢谢。但是请您说得更清楚些好吗?例如:d8,d9,d10,d11的内容如何存储到r4,.64后跟vst1是什么意思?
这不会存储到r4
,而是存储到地址r4
的内存位置。 .64
是元素大小。对于vst1
,它不会产生太大影响(在某些情况下对齐和字节序除外),但它会对vst2
、vst3
或vst4
产生更大的影响,同时在存储到内存之前对结构进行解交织。以上是关于VST/VLD 实际上是做啥的?的主要内容,如果未能解决你的问题,请参考以下文章
“OperationContext.Current.GetCallbackChannel”实际上是做啥的?
AFNetworking 中的 registerHTTPOperationClass 实际上是做啥的? [关闭]