27 |
|
|
28 |
%macro cglobal 1 |
%macro cglobal 1 |
29 |
%ifdef PREFIX |
%ifdef PREFIX |
30 |
|
%ifdef MARK_FUNCS |
31 |
|
global _%1:function %1.endfunc-%1 |
32 |
|
%define %1 _%1:function %1.endfunc-%1 |
33 |
|
%define ENDFUNC .endfunc |
34 |
|
%else |
35 |
global _%1 |
global _%1 |
36 |
%define %1 _%1 |
%define %1 _%1 |
37 |
|
%define ENDFUNC |
38 |
|
%endif |
39 |
|
%else |
40 |
|
%ifdef MARK_FUNCS |
41 |
|
global %1:function %1.endfunc-%1 |
42 |
|
%define ENDFUNC .endfunc |
43 |
%else |
%else |
44 |
global %1 |
global %1 |
45 |
|
%define ENDFUNC |
46 |
|
%endif |
47 |
%endif |
%endif |
48 |
%endmacro |
%endmacro |
49 |
|
|
382 |
paddd mm2, mm3 ; [ out0 | out1 ] |
paddd mm2, mm3 ; [ out0 | out1 ] |
383 |
pmaddwd mm7, mm1 ; [a0.M10+a1.M11 | b0.M26+b1.M27] |
pmaddwd mm7, mm1 ; [a0.M10+a1.M11 | b0.M26+b1.M27] |
384 |
psrad mm2, 16 |
psrad mm2, 16 |
385 |
pmaddwd mm0, qword [%3 + 48] ; [a0.M12+a1.M13 | b0.M28+b1.M29] |
pmaddwd mm0, [%3 + 48] ; [a0.M12+a1.M13 | b0.M28+b1.M29] |
386 |
paddd mm4, mm5 ; [ out2 | out3 ] |
paddd mm4, mm5 ; [ out2 | out3 ] |
387 |
pmaddwd mm1, qword [%3 + 56] ; [a0.M14+a1.M15 | b0.M30+b1.M31] |
pmaddwd mm1, [%3 + 56] ; [a0.M14+a1.M15 | b0.M30+b1.M31] |
388 |
psrad mm4, 16 |
psrad mm4, 16 |
389 |
|
|
390 |
paddd mm6, mm7 ; [ out4 | out5 ] |
paddd mm6, mm7 ; [ out4 | out5 ] |
440 |
paddd mm2, mm3 ; [ out0 | out1 ] |
paddd mm2, mm3 ; [ out0 | out1 ] |
441 |
pmaddwd mm7, mm1 ; [a0.M10+a1.M11 | b0.M26+b1.M27] |
pmaddwd mm7, mm1 ; [a0.M10+a1.M11 | b0.M26+b1.M27] |
442 |
psrad mm2, 16 |
psrad mm2, 16 |
443 |
pmaddwd mm0, qword [%3 + 48] ; [a0.M12+a1.M13 | b0.M28+b1.M29] |
pmaddwd mm0, [%3 + 48] ; [a0.M12+a1.M13 | b0.M28+b1.M29] |
444 |
paddd mm4, mm5 ; [ out2 | out3 ] |
paddd mm4, mm5 ; [ out2 | out3 ] |
445 |
pmaddwd mm1, qword [%3 + 56] ; [a0.M14+a1.M15 | b0.M30+b1.M31] |
pmaddwd mm1, [%3 + 56] ; [a0.M14+a1.M15 | b0.M30+b1.M31] |
446 |
psrad mm4, 16 |
psrad mm4, 16 |
447 |
|
|
448 |
paddd mm6, mm7 ; [ out4 | out5 ] |
paddd mm6, mm7 ; [ out4 | out5 ] |
495 |
mov edi, fdct_rounding_2 |
mov edi, fdct_rounding_2 |
496 |
.loop |
.loop |
497 |
%2 ecx, ecx, edx, ebx, edi |
%2 ecx, ecx, edx, ebx, edi |
498 |
add eax, 2*16 |
add ecx, 2*8 |
499 |
add edx, 2*32 |
add edx, 2*32 |
500 |
add ebx, 2*4 |
add ebx, 2*4 |
501 |
add edi, 2*4 |
add edi, 2*4 |
507 |
%endif |
%endif |
508 |
|
|
509 |
ret |
ret |
510 |
|
ENDFUNC |
511 |
%endmacro |
%endmacro |
512 |
|
|
513 |
;============================================================================= |
;============================================================================= |
527 |
;----------------------------------------------------------------------------- |
;----------------------------------------------------------------------------- |
528 |
|
|
529 |
MAKE_FDCT_FUNC fdct_xmm_skal, fMTX_MULT_XMM |
MAKE_FDCT_FUNC fdct_xmm_skal, fMTX_MULT_XMM |
530 |
|
|
531 |
|
%ifidn __OUTPUT_FORMAT__,elf |
532 |
|
section ".note.GNU-stack" noalloc noexec nowrite progbits |
533 |
|
%endif |
534 |
|
|