20 |
; * along with this program; if not, write to the Free Software |
; * along with this program; if not, write to the Free Software |
21 |
; * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
; * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
22 |
; * |
; * |
23 |
; * $Id: sad_sse2.asm,v 1.16 2008-11-26 01:04:34 Isibaar Exp $ |
; * $Id: sad_sse2.asm,v 1.17 2008-12-01 14:45:45 Isibaar Exp $ |
24 |
; * |
; * |
25 |
; ***************************************************************************/ |
; ***************************************************************************/ |
26 |
|
|
69 |
%endmacro |
%endmacro |
70 |
|
|
71 |
%macro SAD16_SSE2_SSE3 1 |
%macro SAD16_SSE2_SSE3 1 |
72 |
|
PUSH_XMM6_XMM7 |
73 |
mov _EAX, prm1 ; cur (assumed aligned) |
mov _EAX, prm1 ; cur (assumed aligned) |
74 |
mov TMP1, prm2 ; ref |
mov TMP1, prm2 ; ref |
75 |
mov TMP0, prm3 ; stride |
mov TMP0, prm3 ; stride |
88 |
pshufd xmm5, xmm6, 00000010b |
pshufd xmm5, xmm6, 00000010b |
89 |
paddusw xmm6, xmm5 |
paddusw xmm6, xmm5 |
90 |
pextrw eax, xmm6, 0 |
pextrw eax, xmm6, 0 |
91 |
|
|
92 |
|
POP_XMM6_XMM7 |
93 |
ret |
ret |
94 |
%endmacro |
%endmacro |
95 |
|
|
121 |
|
|
122 |
|
|
123 |
%macro MEAN16_SSE2_SSE3 1 |
%macro MEAN16_SSE2_SSE3 1 |
124 |
|
PUSH_XMM6_XMM7 |
125 |
mov _EAX, prm1 ; src |
mov _EAX, prm1 ; src |
126 |
mov TMP0, prm2 ; stride |
mov TMP0, prm2 ; stride |
127 |
|
|
161 |
pshufd xmm7, xmm6, 10b |
pshufd xmm7, xmm6, 10b |
162 |
paddusw xmm7, xmm6 |
paddusw xmm7, xmm6 |
163 |
pextrw eax, xmm7, 0 |
pextrw eax, xmm7, 0 |
164 |
|
|
165 |
|
POP_XMM6_XMM7 |
166 |
ret |
ret |
167 |
%endmacro |
%endmacro |
168 |
|
|