| @@ -2117,10 +2117,10 @@ void ff_ ## OP ## _h264_chroma_mc ## NUM ## _ ## DEPTH ## _ ## OPT \ | |||||
| (uint8_t *dst, uint8_t *src, \ | (uint8_t *dst, uint8_t *src, \ | ||||
| int stride, int h, int x, int y); | int stride, int h, int x, int y); | ||||
| CHROMA_MC(put, 2, 10, mmxext) | |||||
| CHROMA_MC(avg, 2, 10, mmxext) | |||||
| CHROMA_MC(put, 4, 10, mmxext) | |||||
| CHROMA_MC(avg, 4, 10, mmxext) | |||||
| CHROMA_MC(put, 2, 10, mmx2) | |||||
| CHROMA_MC(avg, 2, 10, mmx2) | |||||
| CHROMA_MC(put, 4, 10, mmx2) | |||||
| CHROMA_MC(avg, 4, 10, mmx2) | |||||
| CHROMA_MC(put, 8, 10, sse2) | CHROMA_MC(put, 8, 10, sse2) | ||||
| CHROMA_MC(avg, 8, 10, sse2) | CHROMA_MC(avg, 8, 10, sse2) | ||||
| CHROMA_MC(put, 8, 10, avx) | CHROMA_MC(put, 8, 10, avx) | ||||
| @@ -2740,10 +2740,10 @@ static void dsputil_init_mmx2(DSPContext *c, AVCodecContext *avctx, | |||||
| c->put_h264_chroma_pixels_tab[2] = ff_put_h264_chroma_mc2_mmx2; | c->put_h264_chroma_pixels_tab[2] = ff_put_h264_chroma_mc2_mmx2; | ||||
| } | } | ||||
| if (bit_depth == 10 && CONFIG_H264CHROMA) { | if (bit_depth == 10 && CONFIG_H264CHROMA) { | ||||
| c->put_h264_chroma_pixels_tab[2] = ff_put_h264_chroma_mc2_10_mmxext; | |||||
| c->avg_h264_chroma_pixels_tab[2] = ff_avg_h264_chroma_mc2_10_mmxext; | |||||
| c->put_h264_chroma_pixels_tab[1] = ff_put_h264_chroma_mc4_10_mmxext; | |||||
| c->avg_h264_chroma_pixels_tab[1] = ff_avg_h264_chroma_mc4_10_mmxext; | |||||
| c->put_h264_chroma_pixels_tab[2] = ff_put_h264_chroma_mc2_10_mmx2; | |||||
| c->avg_h264_chroma_pixels_tab[2] = ff_avg_h264_chroma_mc2_10_mmx2; | |||||
| c->put_h264_chroma_pixels_tab[1] = ff_put_h264_chroma_mc4_10_mmx2; | |||||
| c->avg_h264_chroma_pixels_tab[1] = ff_avg_h264_chroma_mc4_10_mmx2; | |||||
| } | } | ||||
| c->add_hfyu_median_prediction = ff_add_hfyu_median_prediction_mmx2; | c->add_hfyu_median_prediction = ff_add_hfyu_median_prediction_mmx2; | ||||
| @@ -60,10 +60,10 @@ SECTION .text | |||||
| ;----------------------------------------------------------------------------- | ;----------------------------------------------------------------------------- | ||||
| ; void put/avg_h264_chroma_mc8(pixel *dst, pixel *src, int stride, int h, int mx, int my) | ; void put/avg_h264_chroma_mc8(pixel *dst, pixel *src, int stride, int h, int mx, int my) | ||||
| ;----------------------------------------------------------------------------- | ;----------------------------------------------------------------------------- | ||||
| %macro CHROMA_MC8 2 | |||||
| %macro CHROMA_MC8 1 | |||||
| ; put/avg_h264_chroma_mc8_*(uint8_t *dst /*align 8*/, uint8_t *src /*align 1*/, | ; put/avg_h264_chroma_mc8_*(uint8_t *dst /*align 8*/, uint8_t *src /*align 1*/, | ||||
| ; int stride, int h, int mx, int my) | ; int stride, int h, int mx, int my) | ||||
| cglobal %1_h264_chroma_mc8_10_%2, 6,7,8 | |||||
| cglobal %1_h264_chroma_mc8_10, 6,7,8 | |||||
| movsxdifnidn r2, r2d | movsxdifnidn r2, r2d | ||||
| mov r6d, r5d | mov r6d, r5d | ||||
| or r6d, r4d | or r6d, r4d | ||||
| @@ -173,8 +173,8 @@ cglobal %1_h264_chroma_mc8_10_%2, 6,7,8 | |||||
| add r0, r2 | add r0, r2 | ||||
| %endmacro | %endmacro | ||||
| %macro CHROMA_MC4 2 | |||||
| cglobal %1_h264_chroma_mc4_10_%2, 6,6,7 | |||||
| %macro CHROMA_MC4 1 | |||||
| cglobal %1_h264_chroma_mc4_10, 6,6,7 | |||||
| movsxdifnidn r2, r2d | movsxdifnidn r2, r2d | ||||
| movd m2, r4m ; x | movd m2, r4m ; x | ||||
| movd m3, r5m ; y | movd m3, r5m ; y | ||||
| @@ -203,8 +203,8 @@ cglobal %1_h264_chroma_mc4_10_%2, 6,6,7 | |||||
| ;----------------------------------------------------------------------------- | ;----------------------------------------------------------------------------- | ||||
| ; void put/avg_h264_chroma_mc2(pixel *dst, pixel *src, int stride, int h, int mx, int my) | ; void put/avg_h264_chroma_mc2(pixel *dst, pixel *src, int stride, int h, int mx, int my) | ||||
| ;----------------------------------------------------------------------------- | ;----------------------------------------------------------------------------- | ||||
| %macro CHROMA_MC2 2 | |||||
| cglobal %1_h264_chroma_mc2_10_%2, 6,7 | |||||
| %macro CHROMA_MC2 1 | |||||
| cglobal %1_h264_chroma_mc2_10, 6,7 | |||||
| movsxdifnidn r2, r2d | movsxdifnidn r2, r2d | ||||
| mov r6d, r4d | mov r6d, r4d | ||||
| shl r4d, 16 | shl r4d, 16 | ||||
| @@ -250,24 +250,24 @@ cglobal %1_h264_chroma_mc2_10_%2, 6,7 | |||||
| %endmacro | %endmacro | ||||
| %define CHROMAMC_AVG NOTHING | %define CHROMAMC_AVG NOTHING | ||||
| INIT_XMM | |||||
| CHROMA_MC8 put, sse2 | |||||
| INIT_XMM sse2 | |||||
| CHROMA_MC8 put | |||||
| %if HAVE_AVX | %if HAVE_AVX | ||||
| INIT_AVX | |||||
| CHROMA_MC8 put, avx | |||||
| INIT_XMM avx | |||||
| CHROMA_MC8 put | |||||
| %endif | %endif | ||||
| INIT_MMX | |||||
| CHROMA_MC4 put, mmxext | |||||
| CHROMA_MC2 put, mmxext | |||||
| INIT_MMX mmx2 | |||||
| CHROMA_MC4 put | |||||
| CHROMA_MC2 put | |||||
| %define CHROMAMC_AVG AVG | %define CHROMAMC_AVG AVG | ||||
| %define PAVG pavgw | %define PAVG pavgw | ||||
| INIT_XMM | |||||
| CHROMA_MC8 avg, sse2 | |||||
| INIT_XMM sse2 | |||||
| CHROMA_MC8 avg | |||||
| %if HAVE_AVX | %if HAVE_AVX | ||||
| INIT_AVX | |||||
| CHROMA_MC8 avg, avx | |||||
| INIT_XMM avx | |||||
| CHROMA_MC8 avg | |||||
| %endif | %endif | ||||
| INIT_MMX | |||||
| CHROMA_MC4 avg, mmxext | |||||
| CHROMA_MC2 avg, mmxext | |||||
| INIT_MMX mmx2 | |||||
| CHROMA_MC4 avg | |||||
| CHROMA_MC2 avg | |||||