> 2021年7月23日 下午1:53,Jiaxun Yang <jiaxun.y...@flygoat.com> 写道: > > wsbh is only avilable for MIPS R2+. > Provide a fallback for older processors. > > Signed-off-by: Jiaxun Yang <jiaxun.y...@flygoat.com> > Reviewed-by: Shiyou Yin <yinshiyou...@loongson.cn> > --- > libavcodec/mips/cabac.h | 24 ++++++++++++++++++++++++ > 1 file changed, 24 insertions(+) > > diff --git a/libavcodec/mips/cabac.h b/libavcodec/mips/cabac.h > index f1e953dabe..39c308c7e0 100644 > --- a/libavcodec/mips/cabac.h > +++ b/libavcodec/mips/cabac.h > @@ -77,7 +77,15 @@ static av_always_inline int > get_cabac_inline_mips(CABACContext *c, > "lhu %[tmp0], 0(%[c_bytestream]) \n\t" > #else > "lhu %[tmp0], 0(%[c_bytestream]) \n\t" > +#if HAVE_MIPS32R2 || HAVE_MIPS64R2 > "wsbh %[tmp0], %[tmp0] \n\t" > +#else > + "and %[tmp1], %[tmp0], 0xff00ff00 \n\t" > + "srl %[tmp1], %[tmp1], 8 \n\t" > + "and %[tmp0], %[tmp0], 0x00ff00ff \n\t" > + "sll %[tmp0], %[tmp0], 8 \n\t" > + "or %[tmp0], %[tmp0], %[tmp1] \n\t" > +#endif > #endif > PTR_SLL "%[tmp0], %[tmp0], 0x01 \n\t" > PTR_SUBU "%[tmp0], %[tmp0], %[cabac_mask] \n\t" > @@ -125,7 +133,15 @@ static av_always_inline int > get_cabac_bypass_mips(CABACContext *c) > "lhu %[tmp1], 0(%[c_bytestream]) > \n\t" > #else > "lhu %[tmp1], 0(%[c_bytestream]) > \n\t" > +#if HAVE_MIPS32R2 || HAVE_MIPS64R2 > "wsbh %[tmp1], %[tmp1] > \n\t" > +#else > + "and %[tmp0], %[tmp1], 0xff00ff00 > \n\t" > + "srl %[tmp0], %[tmp0], 8 > \n\t" > + "and %[tmp1], %[tmp1], 0x00ff00ff > \n\t" > + "sll %[tmp1], %[tmp1], 8 > \n\t" > + "or %[tmp1], %[tmp1], %[tmp0] > \n\t" > +#endif > #endif > PTR_SLL "%[tmp1], %[tmp1], 0x01 > \n\t" > PTR_SUBU "%[tmp1], %[tmp1], %[cabac_mask] > \n\t" > @@ -169,7 +185,15 @@ static av_always_inline int > get_cabac_bypass_sign_mips(CABACContext *c, int val) > "lhu %[tmp1], 0(%[c_bytestream]) > \n\t" > #else > "lhu %[tmp1], 0(%[c_bytestream]) > \n\t" > +#if HAVE_MIPS32R2 || HAVE_MIPS64R2 > "wsbh %[tmp1], %[tmp1] > \n\t" > +#else > + "and %[tmp0], %[tmp1], 0xff00ff00 > \n\t" > + "srl %[tmp0], %[tmp0], 8 > \n\t" > + "and %[tmp1], %[tmp1], 0x00ff00ff > \n\t" > + "sll %[tmp1], %[tmp1], 8 > \n\t" > + "or %[tmp1], %[tmp1], %[tmp0] > \n\t" > +#endif > #endif > PTR_SLL "%[tmp1], %[tmp1], 0x01 > \n\t" > PTR_SUBU "%[tmp1], %[tmp1], %[cabac_mask] > \n\t" > -- > 2.32.0
LGTM _______________________________________________ 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".