В настоящее время я пытаюсь оптимизировать некоторый связанный с DSP код с помощью Shark и обнаружил, что трачу много времени на преобразование с плавающей точкой в целое:
SInt16 nextInt = nextFloat * 32768.0f + 0.5f;
Поскольку iPhone, кажется, имеет сопроцессор ARM11 FP, мне интересно, смогу ли я заменить свой код инструкцией FTOSI.
На веб-сайте ARM имеется некоторая документация , но у меня нет опыта по сборке оптимизированной для рук сборки.
Кто-то делал это раньше?
Я думаю, что я мог бы встроить код с
__asm__ volatile
Но как мне проверить, доступна ли инструкция?
Как я могу передать свою стоимость в?
EDIT1:
Как уже указывал Луи, я забыл упомянуть, что компилирую с выключенным «Compile for Thumb».
EDIT2:
Поскольку я хочу преобразовать число с плавающей точкой в Int16, а не в Int без знака, я изменил инструкцию ARM с FTOUI на FTOSI. Это была ошибка в оригинальном сообщении.