From 7a24d794f64050212b320072ab663bc4e2f1d101 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Denis-Courmont?= Date: Wed, 27 Sep 2023 19:23:39 +0300 Subject: [PATCH] Revert "lavu/timer: remove gratuitous volatile" It does not make much sense to me, but GCC somehow optimises the inline assembler even though the output is very obviously used and having observable side effects. This reverts commit 09731fbfc3a914ec4f6ffad60aa9062db6a8f6aa. --- libavutil/riscv/timer.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libavutil/riscv/timer.h b/libavutil/riscv/timer.h index df1a730b5e..174b469cbe 100644 --- a/libavutil/riscv/timer.h +++ b/libavutil/riscv/timer.h @@ -29,13 +29,13 @@ static inline uint64_t ff_read_time(void) #if (__riscv_xlen >= 64) uintptr_t cycles; - __asm__ ("rdtime %0" : "=r" (cycles)); + __asm__ volatile ("rdtime %0" : "=r" (cycles)); #else uint64_t cycles; uint32_t hi, lo, check; - __asm__ ( + __asm__ volatile ( "1: rdtimeh %0\n" " rdtime %1\n" " rdtimeh %2\n"