22 |
; * along with this program; if not, write to the Free Software |
; * along with this program; if not, write to the Free Software |
23 |
; * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
; * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
24 |
; * |
; * |
25 |
; * $Id: sad_xmm.asm,v 1.2 2008-08-19 09:06:48 Isibaar Exp $ |
; * $Id: sad_xmm.asm,v 1.3 2008-11-11 20:46:24 Isibaar Exp $ |
26 |
; * |
; * |
27 |
; ***************************************************************************/ |
; ***************************************************************************/ |
28 |
|
|
33 |
%ifdef MARK_FUNCS |
%ifdef MARK_FUNCS |
34 |
global _%1:function %1.endfunc-%1 |
global _%1:function %1.endfunc-%1 |
35 |
%define %1 _%1:function %1.endfunc-%1 |
%define %1 _%1:function %1.endfunc-%1 |
36 |
|
%define ENDFUNC .endfunc |
37 |
%else |
%else |
38 |
global _%1 |
global _%1 |
39 |
%define %1 _%1 |
%define %1 _%1 |
40 |
|
%define ENDFUNC |
41 |
%endif |
%endif |
42 |
%else |
%else |
43 |
%ifdef MARK_FUNCS |
%ifdef MARK_FUNCS |
44 |
global %1:function %1.endfunc-%1 |
global %1:function %1.endfunc-%1 |
45 |
|
%define ENDFUNC .endfunc |
46 |
%else |
%else |
47 |
global %1 |
global %1 |
48 |
|
%define ENDFUNC |
49 |
%endif |
%endif |
50 |
%endif |
%endif |
51 |
%endmacro |
%endmacro |
193 |
paddusw mm6,mm5 |
paddusw mm6,mm5 |
194 |
movd eax, mm6 |
movd eax, mm6 |
195 |
ret |
ret |
196 |
.endfunc |
ENDFUNC |
197 |
|
|
198 |
;----------------------------------------------------------------------------- |
;----------------------------------------------------------------------------- |
199 |
; |
; |
234 |
movd eax, mm6 |
movd eax, mm6 |
235 |
|
|
236 |
ret |
ret |
237 |
.endfunc |
ENDFUNC |
238 |
|
|
239 |
;----------------------------------------------------------------------------- |
;----------------------------------------------------------------------------- |
240 |
; |
; |
278 |
movd eax, mm6 |
movd eax, mm6 |
279 |
pop rbx |
pop rbx |
280 |
ret |
ret |
281 |
.endfunc |
ENDFUNC |
282 |
|
|
283 |
;----------------------------------------------------------------------------- |
;----------------------------------------------------------------------------- |
284 |
; |
; |
299 |
|
|
300 |
pxor mm5, mm5 ; accum1 |
pxor mm5, mm5 ; accum1 |
301 |
pxor mm6, mm6 ; accum2 |
pxor mm6, mm6 ; accum2 |
302 |
.Loop |
.Loop: |
303 |
SADBI_8x8_XMM |
SADBI_8x8_XMM |
304 |
SADBI_8x8_XMM |
SADBI_8x8_XMM |
305 |
SADBI_8x8_XMM |
SADBI_8x8_XMM |
309 |
movd eax, mm6 |
movd eax, mm6 |
310 |
pop rbx |
pop rbx |
311 |
ret |
ret |
312 |
.endfunc |
ENDFUNC |
313 |
|
|
314 |
;----------------------------------------------------------------------------- |
;----------------------------------------------------------------------------- |
315 |
; |
; |
387 |
|
|
388 |
movd eax, mm6 |
movd eax, mm6 |
389 |
ret |
ret |
390 |
.endfunc |
ENDFUNC |
391 |
|
|
392 |
;----------------------------------------------------------------------------- |
;----------------------------------------------------------------------------- |
393 |
;int sad16v_x86_64(const uint8_t * const cur, |
;int sad16v_x86_64(const uint8_t * const cur, |
443 |
movd eax, mm7 |
movd eax, mm7 |
444 |
pop rbx |
pop rbx |
445 |
ret |
ret |
446 |
.endfunc |
ENDFUNC |
447 |
|
|
448 |
%ifidn __OUTPUT_FORMAT__,elf |
%ifidn __OUTPUT_FORMAT__,elf |
449 |
section ".note.GNU-stack" noalloc noexec nowrite progbits |
section ".note.GNU-stack" noalloc noexec nowrite progbits |