[FFmpeg-cvslog] avutil/mips/generic_macros_msa: Fix prob that 'ulw' and 'uld' unsupported by clang.
Shiyou Yin
git at videolan.org
Thu Jul 30 01:24:39 EEST 2020
ffmpeg | branch: master | Shiyou Yin <yinshiyou-hf at loongson.cn> | Wed Jul 29 18:10:59 2020 +0800| [0e0a9ca04822f7d3ce0792f5cec3be7b2c738f9a] | committer: Michael Niedermayer
avutil/mips/generic_macros_msa: Fix prob that 'ulw' and 'uld' unsupported by clang.
GCC support these two synthesized instruction, but clang does not yet.
Use machine instruction instead to adapt clang compiler.
Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=0e0a9ca04822f7d3ce0792f5cec3be7b2c738f9a
---
libavutil/mips/generic_macros_msa.h | 14 ++++++++------
1 file changed, 8 insertions(+), 6 deletions(-)
diff --git a/libavutil/mips/generic_macros_msa.h b/libavutil/mips/generic_macros_msa.h
index 267d4e6ca5..bb25e9fd74 100644
--- a/libavutil/mips/generic_macros_msa.h
+++ b/libavutil/mips/generic_macros_msa.h
@@ -111,10 +111,11 @@
uint32_t val_lw_m; \
\
__asm__ volatile ( \
- "ulw %[val_lw_m], %[psrc_lw_m] \n\t" \
+ "lwr %[val_lw_m], 0(%[psrc_lw_m]) \n\t" \
+ "lwl %[val_lw_m], 3(%[psrc_lw_m]) \n\t" \
\
- : [val_lw_m] "=r" (val_lw_m) \
- : [psrc_lw_m] "m" (*psrc_lw_m) \
+ : [val_lw_m] "=&r"(val_lw_m) \
+ : [psrc_lw_m] "r"(psrc_lw_m) \
); \
\
val_lw_m; \
@@ -127,10 +128,11 @@
uint64_t val_ld_m = 0; \
\
__asm__ volatile ( \
- "uld %[val_ld_m], %[psrc_ld_m] \n\t" \
+ "ldr %[val_ld_m], 0(%[psrc_ld_m]) \n\t" \
+ "ldl %[val_ld_m], 7(%[psrc_ld_m]) \n\t" \
\
- : [val_ld_m] "=r" (val_ld_m) \
- : [psrc_ld_m] "m" (*psrc_ld_m) \
+ : [val_ld_m] "=&r" (val_ld_m) \
+ : [psrc_ld_m] "r" (psrc_ld_m) \
); \
\
val_ld_m; \
More information about the ffmpeg-cvslog
mailing list