Использование встроенного ассемблера в приложении iOS AARCH64IOS

Программируем под IOS
Ответить
Anonymous
 Использование встроенного ассемблера в приложении iOS AARCH64

Сообщение Anonymous »

Я попытался собрать какой-то встроенный ассемблер для 64-битного приложения iOS. < /p>

Вот пример: < /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)
);
, чем я основал, что в Aarch64 я должен использовать fcvt вместо vcvt . Потому что < /p>

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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»