[FFmpeg-devel] [PATCH] lavu/riscv: Fallback to getauxval() for cpu flags
Nathan E. Egge
unlord at xiph.org
Tue Jul 30 17:07:52 EEST 2024
Signed-off-by: Nathan E. Egge <unlord at xiph.org>
---
libavutil/riscv/cpu.c | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/libavutil/riscv/cpu.c b/libavutil/riscv/cpu.c
index e035f4b024..13b939b9d9 100644
--- a/libavutil/riscv/cpu.c
+++ b/libavutil/riscv/cpu.c
@@ -90,7 +90,8 @@ int ff_get_cpu_flags_riscv(void)
default:
}
}
-#elif HAVE_GETAUXVAL
+#endif
+#if HAVE_GETAUXVAL
{
const unsigned long hwcap = getauxval(AT_HWCAP);
@@ -100,14 +101,16 @@ int ff_get_cpu_flags_riscv(void)
ret |= AV_CPU_FLAG_RVF;
if (hwcap & HWCAP_RV('D'))
ret |= AV_CPU_FLAG_RVD;
- if (hwcap & HWCAP_RV('B'))
- ret |= AV_CPU_FLAG_RVB_ADDR | AV_CPU_FLAG_RVB_BASIC |
- AV_CPU_FLAG_RVB;
/* The V extension implies all Zve* functional subsets */
if (hwcap & HWCAP_RV('V'))
ret |= AV_CPU_FLAG_RVV_I32 | AV_CPU_FLAG_RVV_I64
| AV_CPU_FLAG_RVV_F32 | AV_CPU_FLAG_RVV_F64;
+
+ /* The V extension implies Zb* on all existing hardware */
+ if (hwcap & (HWCAP_RV('B') | HWCAP_RV('V')))
+ ret |= AV_CPU_FLAG_RVB_ADDR | AV_CPU_FLAG_RVB_BASIC |
+ AV_CPU_FLAG_RVB;
}
#endif
--
2.45.1
More information about the ffmpeg-devel
mailing list