Передача состояния с плавающей точкой на ARM7 Cortex A8 - PullRequest
3 голосов
/ 29 декабря 2011

Существует сравнение:

if( val0 > val1 )

, где val0 и val1 - двойные переменные.

Код, сгенерированный компилятором Apple LLVM:

+0x184  vcmpe.f64                      d17, d16
+0x188  vmrs                           APSR_nzcv, fpscr <-- FP status transfer (30 cycles stall of ALU)
+0x18c  ble.w                          .....

Isесть ли способ избежать такого рода передачи?

[ОБНОВЛЕНИЕ] Код работает на процессоре Cortex-A8.

1 Ответ

0 голосов
/ 04 января 2012

Поскольку кажется невозможным избежать перехода флагов, так как при управлении потоком кода задействуется ARM-часть процессора, а не Neon-сопроцессор. Вопрос закрыт.

...