From e8bf784a034fe73aeed99a3360e803af38728126 Mon Sep 17 00:00:00 2001 From: Oliver O'Halloran Date: Thu, 6 Jul 2017 18:47:10 +1000 Subject: [PATCH] arch/ppc: Fix get_cpu_clock asm clobber list Mark condition register 0 (cr0) as being clobbered by the inline asm in get_cpu_clock(). Not doing this results in strange behaviour due to GCC optimising away some checking. For example e.g: $ ./fio examples/null.fio --output-format=json time 5500 cycles_start=8085227422910 <--- bad! { "fio version" : "fio-2.21-89-gb034", The extra output is due to the flag checking in dprint being removed at higher optimisation levels. Signed-off-by: Oliver O'Halloran --- arch/arch-ppc.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/arch/arch-ppc.h b/arch/arch-ppc.h index ba452b15..804d596a 100644 --- a/arch/arch-ppc.h +++ b/arch/arch-ppc.h @@ -62,7 +62,8 @@ static inline unsigned long long get_cpu_clock(void) " cmpwi %0,0;\n" " beq- 90b;\n" : "=r" (rval) - : "i" (SPRN_TBRL)); + : "i" (SPRN_TBRL) + : "cr0"); return rval; } -- 2.25.1