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,它不会产生太大影响(在某些情况下对齐和字节序除外),但它会对vst2vst3vst4 产生更大的影响,同时在存储到内存之前对结构进行解交织。

以上是关于VST/VLD 实际上是做啥的?的主要内容,如果未能解决你的问题,请参考以下文章

“OperationContext.Current.GetCallbackChannel”实际上是做啥的?

AFNetworking 中的 registerHTTPOperationClass 实际上是做啥的? [关闭]

NSLog 实际上是做啥的?

ImageView android:cropToPadding,它实际上是做啥的?

VC++“排除目录”项目设置实际上是做啥的?

Xcode 5 构建设置“未使用的功能”实际上是做啥的?