diff --git a/libavcodec/x86/vp9lpf.asm b/libavcodec/x86/vp9lpf.asm index 8702f59f53..230583237c 100644 --- a/libavcodec/x86/vp9lpf.asm +++ b/libavcodec/x86/vp9lpf.asm @@ -59,8 +59,10 @@ SECTION .text %endmacro ; %1 = %1<=%2 -%macro CMP_LTE 4 ; src/dst, cmp, tmp, pb_80 +%macro CMP_LTE 3-4 ; src/dst, cmp, tmp, pb_80 +%if %0 == 4 pxor %1, %4 +%endif pcmpgtb %3, %2, %1 ; cmp > src? pcmpeqb %1, %2 ; cmp == src? XXX: avoid this with a -1/+1 well placed? por %1, %3 ; cmp >= src? @@ -480,15 +482,13 @@ SECTION .text pxor m7, m8 pxor m4, m8 pcmpgtb m0, m4, m7 ; abs(p1 - p0) > H (1/2 hev condition) - pxor m4, m8 - CMP_LTE m4, m6, m5, m8 ; abs(p1 - p0) <= 1 + CMP_LTE m4, m6, m5 ; abs(p1 - p0) <= 1 pand m2, m4 ; (flat8in) ABSSUB m4, m13, m12, m1 ; abs(q1 - q0) pxor m4, m8 pcmpgtb m5, m4, m7 ; abs(q1 - q0) > H (2/2 hev condition) por m0, m5 ; hev final value - pxor m4, m8 - CMP_LTE m4, m6, m5, m8 ; abs(q1 - q0) <= 1 + CMP_LTE m4, m6, m5 ; abs(q1 - q0) <= 1 pand m2, m4 ; (flat8in) ABSSUB_CMP m1, m14, m12, m6, m4, m5, m8 ; abs(q2 - q0) <= 1 pand m2, m1