[FFmpeg-devel] [PATCH] mips: fix build fail on MIPS R6

Junxian Zhu zhujunxian at oss.cipunited.com
Thu Dec 1 09:00:06 EET 2022


From: Junxian Zhu <zhujunxian at oss.cipunited.com>

Add macro define to avoid causing build fail with incompatible assembler code on MIPS R6.

Signed-off-by: Junxian Zhu <zhujunxian at oss.cipunited.com>
---
 libavcodec/mips/cabac.h                   | 2 ++
 libavcodec/mips/compute_antialias_fixed.h | 2 ++
 libavutil/mips/generic_macros_msa.h       | 6 +++---
 3 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/libavcodec/mips/cabac.h b/libavcodec/mips/cabac.h
index 39c308c7e0..20ecab4320 100644
--- a/libavcodec/mips/cabac.h
+++ b/libavcodec/mips/cabac.h
@@ -30,6 +30,7 @@
 #include "libavutil/mips/mmiutils.h"
 #include "config.h"
 
+#if !HAVE_MIPS32R6 && !HAVE_MIPS64R6
 #define get_cabac_inline get_cabac_inline_mips
 static av_always_inline int get_cabac_inline_mips(CABACContext *c,
                                                   uint8_t * const state){
@@ -225,4 +226,5 @@ static av_always_inline int get_cabac_bypass_sign_mips(CABACContext *c, int val)
 
     return res;
 }
+#endif /* !HAVE_MIPS32R6 && !HAVE_MIPS64R6 */
 #endif /* AVCODEC_MIPS_CABAC_H */
diff --git a/libavcodec/mips/compute_antialias_fixed.h b/libavcodec/mips/compute_antialias_fixed.h
index 1f395d2302..982002ad4c 100644
--- a/libavcodec/mips/compute_antialias_fixed.h
+++ b/libavcodec/mips/compute_antialias_fixed.h
@@ -56,6 +56,7 @@
 #define AVCODEC_MIPS_COMPUTE_ANTIALIAS_FIXED_H
 
 #if HAVE_INLINE_ASM
+#if !HAVE_MIPS32R6 && !HAVE_MIPS64R6
 static void compute_antialias_mips_fixed(MPADecodeContext *s,
                                         GranuleDef *g)
 {
@@ -246,6 +247,7 @@ static void compute_antialias_mips_fixed(MPADecodeContext *s,
     }
 }
 #define compute_antialias compute_antialias_mips_fixed
+#endif /* !HAVE_MIPS32R6 && !HAVE_MIPS64R6 */
 #endif /* HAVE_INLINE_ASM */
 
 #endif /* AVCODEC_MIPS_COMPUTE_ANTIALIAS_FIXED_H */
diff --git a/libavutil/mips/generic_macros_msa.h b/libavutil/mips/generic_macros_msa.h
index 1486f7296e..9beb0443ed 100644
--- a/libavutil/mips/generic_macros_msa.h
+++ b/libavutil/mips/generic_macros_msa.h
@@ -44,7 +44,7 @@
 #define ST_UW(...) ST_V(v4u32, __VA_ARGS__)
 #define ST_SW(...) ST_V(v4i32, __VA_ARGS__)
 
-#if (__mips_isa_rev >= 6)
+#if HAVE_MIPS32R6 || HAVE_MIPS64R6
     #define LH(psrc)                              \
     ( {                                           \
         uint16_t val_lh_m = *(uint16_t *)(psrc);  \
@@ -85,7 +85,7 @@
     #define SW(val, pdst)  *(uint32_t *)(pdst) = (val);
     #define SD(val, pdst)  *(uint64_t *)(pdst) = (val);
 
-#else  // !(__mips_isa_rev >= 6)
+#else  // !HAVE_MIPS32R6 && !HAVE_MIPS64R6
     #define LH(psrc)                                 \
     ( {                                              \
         uint8_t *psrc_lh_m = (uint8_t *) (psrc);     \
@@ -188,7 +188,7 @@
         SW(val0_sd_m, pdst_sd_m);                                     \
         SW(val1_sd_m, pdst_sd_m + 4);                                 \
     }
-#endif // (__mips_isa_rev >= 6)
+#endif // HAVE_MIPS32R6 || HAVE_MIPS64R6
 
 /* Description : Load 4 words with stride
    Arguments   : Inputs  - psrc    (source pointer to load from)
-- 
2.38.1.windows.1


More information about the ffmpeg-devel mailing list