我是X86的新手,我不得不使用另一个双数组的值更新双数组.下面的代码是我的函数,我想使用内联汇编来替换循环内的代码段.我在下面附上了错误消息.任何人都可以帮助我指出我的错误吗?我对错误消息感到困惑,不知道如何修改它.
static inline void update(double * x,double * y,double * z,double * vx,
double * vy,double * vz,uint32_t size){
for (uint32_t i=0;i<size;++i){
x[i] = x[i] + vx[i];
y[i] = y[i] + vy[i];
z[i] = z[i] + vz[i];
}
}
uint32_t counter = 0;
__asm__ __volatile__ (
"loop: \n\t"
"faddq (%4), (%1)\n\t"
"faddq (%5), (%2)\n\t"
"faddq (%6), (%3)\n\t"
"addq $8, %1\n\t"
"addq $8, %2\n\t"
"addq $8, %3\n\t"
"addq $8, %4\n\t"
"addq $8, %5\n\t"
"addq $8, %6\n\t"
"incq %0\n\t"
"cmp %0, %7\n\t" …Run Code Online (Sandbox Code Playgroud)