* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
+#include "libavutil/mips/cpu.h"
#include "blockdsp_mips.h"
-#if HAVE_MSA
-static av_cold void blockdsp_init_msa(BlockDSPContext *c)
+void ff_blockdsp_init_mips(BlockDSPContext *c)
{
- c->clear_block = ff_clear_block_msa;
- c->clear_blocks = ff_clear_blocks_msa;
+ int cpu_flags = av_get_cpu_flags();
- c->fill_block_tab[0] = ff_fill_block16_msa;
- c->fill_block_tab[1] = ff_fill_block8_msa;
-}
-#endif // #if HAVE_MSA
+ if (have_mmi(cpu_flags)) {
+ c->clear_block = ff_clear_block_mmi;
+ c->clear_blocks = ff_clear_blocks_mmi;
-#if HAVE_MMI
-static av_cold void blockdsp_init_mmi(BlockDSPContext *c)
-{
- c->clear_block = ff_clear_block_mmi;
- c->clear_blocks = ff_clear_blocks_mmi;
+ c->fill_block_tab[0] = ff_fill_block16_mmi;
+ c->fill_block_tab[1] = ff_fill_block8_mmi;
+ }
- c->fill_block_tab[0] = ff_fill_block16_mmi;
- c->fill_block_tab[1] = ff_fill_block8_mmi;
-}
-#endif /* HAVE_MMI */
+ if (have_msa(cpu_flags)) {
+ c->clear_block = ff_clear_block_msa;
+ c->clear_blocks = ff_clear_blocks_msa;
-void ff_blockdsp_init_mips(BlockDSPContext *c)
-{
-#if HAVE_MMI
- blockdsp_init_mmi(c);
-#endif /* HAVE_MMI */
-#if HAVE_MSA
- blockdsp_init_msa(c);
-#endif // #if HAVE_MSA
+ c->fill_block_tab[0] = ff_fill_block16_msa;
+ c->fill_block_tab[1] = ff_fill_block8_msa;
+ }
}