From: Diego Biurrun Date: Sun, 15 Jul 2012 15:59:26 +0000 (+0200) Subject: x86: PABSW: port to cpuflags X-Git-Tag: android-x86-4.4-r1~364^2~2780 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=dbb37e77117466edfc146f9f0df4c70bef6239d6;p=android-x86%2Fexternal-ffmpeg.git x86: PABSW: port to cpuflags --- diff --git a/libavcodec/x86/vc1dsp.asm b/libavcodec/x86/vc1dsp.asm index 4b56c31e4e..adf08d7d84 100644 --- a/libavcodec/x86/vc1dsp.asm +++ b/libavcodec/x86/vc1dsp.asm @@ -268,7 +268,6 @@ cglobal vc1_h_loop_filter8, 3,5,0 %endmacro INIT_MMX mmxext -%define PABSW PABSW_MMXEXT VC1_LF INIT_XMM sse2 @@ -284,8 +283,6 @@ cglobal vc1_h_loop_filter8, 3,6,8 VC1_H_LOOP_FILTER 8, r5 RET -%define PABSW PABSW_SSSE3 - INIT_MMX ssse3 ; void ff_vc1_v_loop_filter4_ssse3(uint8_t *src, int stride, int pq) cglobal vc1_v_loop_filter4, 3,5,0 diff --git a/libavutil/x86/x86util.asm b/libavutil/x86/x86util.asm index 9183d38595..b35d5945d8 100644 --- a/libavutil/x86/x86util.asm +++ b/libavutil/x86/x86util.asm @@ -145,13 +145,21 @@ %endif %endmacro -; PABSW macros assume %1 != %2, while ABS1/2 macros work in-place -%macro PABSW_MMX 2 +; PABSW macro assumes %1 != %2, while ABS1/2 macros work in-place +%macro PABSW 2 +%if cpuflag(ssse3) + pabsw %1, %2 +%elif cpuflag(mmxext) + pxor %1, %1 + psubw %1, %2 + pmaxsw %1, %2 +%else pxor %1, %1 pcmpgtw %1, %2 pxor %2, %1 psubw %2, %1 SWAP %1, %2 +%endif %endmacro %macro PSIGNW_MMX 2 @@ -159,16 +167,6 @@ psubw %1, %2 %endmacro -%macro PABSW_MMXEXT 2 - pxor %1, %1 - psubw %1, %2 - pmaxsw %1, %2 -%endmacro - -%macro PABSW_SSSE3 2 - pabsw %1, %2 -%endmacro - %macro PSIGNW_SSSE3 2 psignw %1, %2 %endmacro