> 2023年2月23日 15:48,Steven Liu <lingjiujia...@gmail.com> 写道: > > Shiyou Yin <yinshiyou...@loongson.cn> 于2023年2月14日周二 20:26写道: >> >> Replace cpucfg with getauxval to avoid crash in case of >> some processor capabilities are not supportted by kernel used. >> --- >> libavutil/loongarch/cpu.c | 24 ++++++++---------------- >> 1 file changed, 8 insertions(+), 16 deletions(-) >> >> diff --git a/libavutil/loongarch/cpu.c b/libavutil/loongarch/cpu.c >> index e4b240bc44..cad8504fde 100644 >> --- a/libavutil/loongarch/cpu.c >> +++ b/libavutil/loongarch/cpu.c >> @@ -21,26 +21,18 @@ >> >> #include <stdint.h> >> #include "cpu.h" >> +#include <sys/auxv.h> >> >> -#define LOONGARCH_CFG2 0x2 >> -#define LOONGARCH_CFG2_LSX (1 << 6) >> -#define LOONGARCH_CFG2_LASX (1 << 7) >> - >> -static int cpu_flags_cpucfg(void) >> +#define LA_HWCAP_LSX (1<<4) >> +#define LA_HWCAP_LASX (1<<5) >> +static int cpu_flags_getauxval(void) >> { >> int flags = 0; >> - uint32_t cfg2 = 0; >> - >> - __asm__ volatile( >> - "cpucfg %0, %1 \n\t" >> - : "+&r"(cfg2) >> - : "r"(LOONGARCH_CFG2) >> - ); >> + int flag = (int)getauxval(AT_HWCAP); >> >> - if (cfg2 & LOONGARCH_CFG2_LSX) >> + if (flag & LA_HWCAP_LSX) >> flags |= AV_CPU_FLAG_LSX; >> - >> - if (cfg2 & LOONGARCH_CFG2_LASX) >> + if (flag & LA_HWCAP_LASX) >> flags |= AV_CPU_FLAG_LASX; >> >> return flags; >> @@ -49,7 +41,7 @@ static int cpu_flags_cpucfg(void) >> int ff_get_cpu_flags_loongarch(void) >> { >> #if defined __linux__ >> - return cpu_flags_cpucfg(); >> + return cpu_flags_getauxval(); >> #else >> /* Assume no SIMD ASE supported */ >> return 0; >> -- >> 2.20.1 >> >> _______________________________________________ >> ffmpeg-devel mailing list >> ffmpeg-devel@ffmpeg.org >> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel >> >> To unsubscribe, visit link above, or email >> ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe". > > > LGTM > > Thanks > Steven > _______________________________________________
Could you please help to merge this patch. _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".