arm assembly 向量数无效

arm assembly Invalid number of vectors

关于armv8中的asm汇编有两个问题

首先,"Invalid number of vectors,"我的代码如下。

"prfm   pldl1keep, [%7, #64] \n"
"ld1    {v0.4s, v1.4s, v2.4s, v3.4s, v4.4s, v5.4s}, [%7], #48 \n"

第二,"Mismatched register size suffix".

"prfm   pldl1keep, [%5, #64] \n"
"ld1    {v0.4s, v1.2s}, [%7], #24 \n"

我直接google这两个问题,但得到的答案很少。

将我的评论(似乎已经回答了问题)变成 'answer' 这样这个问题就可以解决了。

根据 docsld1 最多只支持 4 个寄存器,而您指定的是 6 个,这将是一个 invalid number of vectors

至于 mismatched register size suffix,文档指出 2 寄存器变体只能使用 #16 或 #32,不能使用您提供的 #24。也许不支持不匹配的尺寸?

请注意,我对 ARM 的了解不够,无法评论 OP 解决方案的效率。可能还有其他更好的解决方案。但是,这似乎可以解释两条错误消息的原因。