diff --git a/performance.c b/performance.c index 34798e94f7..e3d05647bb 100644 --- a/performance.c +++ b/performance.c @@ -262,14 +262,15 @@ static uint64_t xgetbv_x86(uint32_t index) #ifdef HAVE_NEON static void arm_enable_runfast_mode(void) { - static const unsigned int x = 0x04086060; - static const unsigned int y = 0x03000000; + // RunFast mode. Enables flush-to-zero and some floating point optimizations. + static const unsigned x = 0x04086060; + static const unsigned y = 0x03000000; int r; asm volatile( - "fmrx %0, fpscr \n\t" //r0 = FPSCR - "and %0, %0, %1 \n\t" //r0 = r0 & 0x04086060 - "orr %0, %0, %2 \n\t" //r0 = r0 | 0x03000000 - "fmxr fpscr, %0 \n\t" //FPSCR = r0 + "fmrx %0, fpscr \n\t" // r0 = FPSCR + "and %0, %0, %1 \n\t" // r0 = r0 & 0x04086060 + "orr %0, %0, %2 \n\t" // r0 = r0 | 0x03000000 + "fmxr fpscr, %0 \n\t" // FPSCR = r0 : "=r"(r) : "r"(x), "r"(y) );