armv8中有两个关于asm汇编的问题。
首先,“无效的向量数量”,我的代码如下。
"prfm pldl1keep, [%7, #64] \n"
"ld1 {v0.4s, v1.4s, v2.4s, v3.4s, v4.4s, v5.4s}, [%7], #48 \n"
第二,“不匹配的寄存器大小后缀”。
"prfm pldl1keep, [%5, #64] \n"
"ld1 {v0.4s, v1.2s}, [%7], #24 \n"
armv8中有两个关于asm汇编的问题。
首先,“无效的向量数量”,我的代码如下。
"prfm pldl1keep, [%7, #64] \n"
"ld1 {v0.4s, v1.4s, v2.4s, v3.4s, v4.4s, v5.4s}, [%7], #48 \n"
第二,“不匹配的寄存器大小后缀”。
"prfm pldl1keep, [%5, #64] \n"
"ld1 {v0.4s, v1.2s}, [%7], #24 \n"
将我的评论(似乎已经回答了这个问题)变成了一个“答案”,这样这个问题就可以解决了。
根据文档,ld1
最多仅支持 4 个寄存器,而您指定 6 个,这将是一个invalid number of vectors
.
至于mismatched register size suffix
,文档表明 2 寄存器变体只能使用 #16 或 #32,而不是您提供的 #24。也许不支持不匹配的尺寸?
请注意,我对 ARM 的了解不足,无法评论 OP 解决方案的效率。可能还有其他更好的解决方案。但是,这似乎可以解释两条错误消息的原因。