@ -52,26 +52,6 @@ extern emu_edge_vfix_func ff_emu_edge_vfix12_mmx;
extern emu_edge_vfix_func ff_emu_edge_vfix13_mmx ;
extern emu_edge_vfix_func ff_emu_edge_vfix14_mmx ;
extern emu_edge_vfix_func ff_emu_edge_vfix15_mmx ;
extern emu_edge_vfix_func ff_emu_edge_vfix16_mmx ;
extern emu_edge_vfix_func ff_emu_edge_vfix17_mmx ;
extern emu_edge_vfix_func ff_emu_edge_vfix18_mmx ;
extern emu_edge_vfix_func ff_emu_edge_vfix19_mmx ;
extern emu_edge_vfix_func ff_emu_edge_vfix20_mmx ;
extern emu_edge_vfix_func ff_emu_edge_vfix21_mmx ;
extern emu_edge_vfix_func ff_emu_edge_vfix22_mmx ;
# if ARCH_X86_32
static emu_edge_vfix_func * const vfixtbl_mmx [ 22 ] = {
& ff_emu_edge_vfix1_mmx , & ff_emu_edge_vfix2_mmx , & ff_emu_edge_vfix3_mmx ,
& ff_emu_edge_vfix4_mmx , & ff_emu_edge_vfix5_mmx , & ff_emu_edge_vfix6_mmx ,
& ff_emu_edge_vfix7_mmx , & ff_emu_edge_vfix8_mmx , & ff_emu_edge_vfix9_mmx ,
& ff_emu_edge_vfix10_mmx , & ff_emu_edge_vfix11_mmx , & ff_emu_edge_vfix12_mmx ,
& ff_emu_edge_vfix13_mmx , & ff_emu_edge_vfix14_mmx , & ff_emu_edge_vfix15_mmx ,
& ff_emu_edge_vfix16_mmx , & ff_emu_edge_vfix17_mmx , & ff_emu_edge_vfix18_mmx ,
& ff_emu_edge_vfix19_mmx , & ff_emu_edge_vfix20_mmx , & ff_emu_edge_vfix21_mmx ,
& ff_emu_edge_vfix22_mmx
} ;
# endif
extern emu_edge_vvar_func ff_emu_edge_vvar_mmx ;
extern emu_edge_vfix_func ff_emu_edge_vfix16_sse ;
extern emu_edge_vfix_func ff_emu_edge_vfix17_sse ;
extern emu_edge_vfix_func ff_emu_edge_vfix18_sse ;
@ -103,19 +83,6 @@ extern emu_edge_hfix_func ff_emu_edge_hfix8_mmx;
extern emu_edge_hfix_func ff_emu_edge_hfix10_mmx ;
extern emu_edge_hfix_func ff_emu_edge_hfix12_mmx ;
extern emu_edge_hfix_func ff_emu_edge_hfix14_mmx ;
extern emu_edge_hfix_func ff_emu_edge_hfix16_mmx ;
extern emu_edge_hfix_func ff_emu_edge_hfix18_mmx ;
extern emu_edge_hfix_func ff_emu_edge_hfix20_mmx ;
extern emu_edge_hfix_func ff_emu_edge_hfix22_mmx ;
# if ARCH_X86_32
static emu_edge_hfix_func * const hfixtbl_mmx [ 11 ] = {
ff_emu_edge_hfix2_mmx , ff_emu_edge_hfix4_mmx , ff_emu_edge_hfix6_mmx ,
ff_emu_edge_hfix8_mmx , ff_emu_edge_hfix10_mmx , ff_emu_edge_hfix12_mmx ,
ff_emu_edge_hfix14_mmx , ff_emu_edge_hfix16_mmx , ff_emu_edge_hfix18_mmx ,
ff_emu_edge_hfix20_mmx , ff_emu_edge_hfix22_mmx
} ;
# endif
extern emu_edge_hvar_func ff_emu_edge_hvar_mmx ;
extern emu_edge_hfix_func ff_emu_edge_hfix16_sse2 ;
extern emu_edge_hfix_func ff_emu_edge_hfix18_sse2 ;
extern emu_edge_hfix_func ff_emu_edge_hfix20_sse2 ;
@ -221,30 +188,6 @@ static av_always_inline void emulated_edge_mc(uint8_t *dst, const uint8_t *src,
}
}
# if ARCH_X86_32
static av_noinline void emulated_edge_mc_mmx ( uint8_t * buf , const uint8_t * src ,
ptrdiff_t buf_stride ,
ptrdiff_t src_stride ,
int block_w , int block_h ,
int src_x , int src_y , int w , int h )
{
emulated_edge_mc ( buf , src , buf_stride , src_stride , block_w , block_h ,
src_x , src_y , w , h , vfixtbl_mmx , & ff_emu_edge_vvar_mmx ,
hfixtbl_mmx , & ff_emu_edge_hvar_mmx ) ;
}
static av_noinline void emulated_edge_mc_sse ( uint8_t * buf , const uint8_t * src ,
ptrdiff_t buf_stride ,
ptrdiff_t src_stride ,
int block_w , int block_h ,
int src_x , int src_y , int w , int h )
{
emulated_edge_mc ( buf , src , buf_stride , src_stride , block_w , block_h ,
src_x , src_y , w , h , vfixtbl_sse , & ff_emu_edge_vvar_sse ,
hfixtbl_mmx , & ff_emu_edge_hvar_mmx ) ;
}
# endif
static av_noinline void emulated_edge_mc_sse2 ( uint8_t * buf , const uint8_t * src ,
ptrdiff_t buf_stride ,
ptrdiff_t src_stride ,
@ -273,29 +216,15 @@ static av_noinline void emulated_edge_mc_avx2(uint8_t *buf, const uint8_t *src,
# endif /* HAVE_X86ASM */
void ff_prefetch_mmxext ( uint8_t * buf , ptrdiff_t stride , int h ) ;
void ff_prefetch_3dnow ( uint8_t * buf , ptrdiff_t stride , int h ) ;
av_cold void ff_videodsp_init_x86 ( VideoDSPContext * ctx , int bpc )
{
# if HAVE_X86ASM
int cpu_flags = av_get_cpu_flags ( ) ;
# if ARCH_X86_32
if ( EXTERNAL_MMX ( cpu_flags ) & & bpc < = 8 ) {
ctx - > emulated_edge_mc = emulated_edge_mc_mmx ;
}
if ( EXTERNAL_AMD3DNOW ( cpu_flags ) ) {
ctx - > prefetch = ff_prefetch_3dnow ;
}
# endif /* ARCH_X86_32 */
if ( EXTERNAL_MMXEXT ( cpu_flags ) ) {
ctx - > prefetch = ff_prefetch_mmxext ;
}
# if ARCH_X86_32
if ( EXTERNAL_SSE ( cpu_flags ) & & bpc < = 8 ) {
ctx - > emulated_edge_mc = emulated_edge_mc_sse ;
}
# endif /* ARCH_X86_32 */
if ( EXTERNAL_SSE2 ( cpu_flags ) & & bpc < = 8 ) {
ctx - > emulated_edge_mc = emulated_edge_mc_sse2 ;
}