Вот пример: < /p>
Код: Выделить всё
int roundff(float _value) {
int res;
float temp;
asm("vcvtr.s32.f32 %[temp], %[value] \n vmov %[res], %[temp]" : [res] "=r" (res), [temp] "=w" (temp) : [value] "w" (_value));
return res;
}
< /code>
И у меня есть эти ошибки: < /p>
не признанная__asm__ volatile(
"add %[result], %[b], %[a];"
: [result] "=r" (result)
: [a] "r" (a), [b] "r" (b), [c] "r" (c)
);
int a = (int)(10.123);
< /code>
компилируется в < /p>
fcvtzs w8, s8
< /code>
Но я не знаю, как написать его в встроенной ассемблере. Что -то подобное < /p>
int roundff(float _value)
{
int res;
asm("fcvtzs %[res], %[value]" : [res] "=r" (res) : [value] "w" (_value));
return res;
}
< /code>
также не работает и генерирует эти ошибки: < /p>
Инструкция 'fcvtz' не может установить флаги, но 's' Суффикс указан. /> Также мне нужен round вместо trim . ( fcvtns < /strong>) < /p>
Любая помощь? Где я могу прочитать что -то большее об ARM (32/64) ASM? Это: float res = рядом с компанией (v) в хорошей инструкции Frinti S0 S0. Но почему мой встроенный ассемблер не работает на iOS с помощью компилятора Clang?
Подробнее здесь: https://stackoverflow.com/questions/343 ... pplication
Мобильная версия