У меня есть следующий бит встроенной сборки ARM, она работает в отладочной сборке, но вылетает в сборке выпуска iphone SDK 3.1. Проблема заключается в инструкциях добавления, где я увеличиваю адрес вывода переменных C и х на 4 байта, это должно увеличиваться на размер с плавающей запятой. Я думаю, что когда я увеличиваю на каком-то таком этапе, я что-то перезаписываю, может кто-нибудь сказать, что является лучшим способом справиться с этим
Спасибо
C-код, который заменяет asm, sum, output и x - все числа с плавающей запятой
for(int i = 0; i< count; i++)
sum+= output[i]* (*x++)
asm volatile(
".align 4 \n\t"
"mov r4,%3 \n\t"
"flds s0,[%0] \n\t"
"0: \n\t"
"flds s1,[%2] \n\t"
//"add %3,%3,#4 \n\t"
"flds s2,[%1] \n\t"
//"add %2,%2,#4 \n\t"
"subs r4,r4, #1 \n\t"
"fmacs s0, s1, s2 \n\t"
"bne 0b \n\t"
"fsts s0,[%0] \n\t"
:
: "r" (&sum), "r" (output), "r" (x),"r" (count)
: "r0","r4","cc", "memory",
"s0","s1","s2"
);