From 83ca059295ebaffe4bc8ff500ecaeab950570d0a Mon Sep 17 00:00:00 2001 From: Gregor Haas Date: Tue, 21 Jan 2020 14:06:58 -0500 Subject: [PATCH] Measure time more accurately --- c8_libpayload/pl/src/floppysleep.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/c8_libpayload/pl/src/floppysleep.c b/c8_libpayload/pl/src/floppysleep.c index 34e6597..c7755d1 100644 --- a/c8_libpayload/pl/src/floppysleep.c +++ b/c8_libpayload/pl/src/floppysleep.c @@ -29,10 +29,10 @@ unsigned long long _start(float *init_a) while(1) { - __asm__ volatile ("mrs %0, cntpct_el0" : "=r" (start)); + __asm__ volatile ("isb\n\rmrs %0, cntpct_el0" : "=r" (start)); fs_load(init_a, 1); for(i = 0; i < 8; i++) fs_routine(); - __asm__ volatile ("mrs %0, cntpct_el0" : "=r" (end)); + __asm__ volatile ("isb\n\rmrs %0, cntpct_el0" : "=r" (end)); if(2 * end - start - 64 > 0) { @@ -41,6 +41,7 @@ unsigned long long _start(float *init_a) } } - __asm__ volatile ("mrs %0, cntpct_el0" : "=r" (report)); - return end - start; + + __asm__ volatile ("isb\n\rmrs %0, cntpct_el0" : "=r" (report)); + return report - end; } \ No newline at end of file