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' 这样这个问题就可以解决了。
根据 docs,ld1
最多只支持 4 个寄存器,而您指定的是 6 个,这将是一个 invalid number of vectors
。
至于 mismatched register size suffix
,文档指出 2 寄存器变体只能使用 #16 或 #32,不能使用您提供的 #24。也许不支持不匹配的尺寸?
请注意,我对 ARM 的了解不够,无法评论 OP 解决方案的效率。可能还有其他更好的解决方案。但是,这似乎可以解释两条错误消息的原因。
关于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"
将我的评论(似乎已经回答了问题)变成 'answer' 这样这个问题就可以解决了。
根据 docs,ld1
最多只支持 4 个寄存器,而您指定的是 6 个,这将是一个 invalid number of vectors
。
至于 mismatched register size suffix
,文档指出 2 寄存器变体只能使用 #16 或 #32,不能使用您提供的 #24。也许不支持不匹配的尺寸?
请注意,我对 ARM 的了解不够,无法评论 OP 解决方案的效率。可能还有其他更好的解决方案。但是,这似乎可以解释两条错误消息的原因。