|
|
|
@ -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 |
|
|
|
|