19 |
; * along with this program; if not, write to the Free Software |
; * along with this program; if not, write to the Free Software |
20 |
; * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
; * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
21 |
; * |
; * |
22 |
; * $Id: fdct_mmx_skal.asm,v 1.5 2004-08-22 11:46:09 edgomez Exp $ |
; * $Id: fdct_mmx_skal.asm,v 1.7 2007-09-11 12:41:13 suxen_drol Exp $ |
23 |
; * |
; * |
24 |
; ***************************************************************************/ |
; ***************************************************************************/ |
25 |
|
|
28 |
%macro cglobal 1 |
%macro cglobal 1 |
29 |
%ifdef PREFIX |
%ifdef PREFIX |
30 |
%ifdef MARK_FUNCS |
%ifdef MARK_FUNCS |
31 |
global _%1:function |
global _%1:function %1.endfunc-%1 |
32 |
%define %1 _%1:function |
%define %1 _%1:function %1.endfunc-%1 |
33 |
%else |
%else |
34 |
global _%1 |
global _%1 |
35 |
%define %1 _%1 |
%define %1 _%1 |
36 |
%endif |
%endif |
37 |
%else |
%else |
38 |
%ifdef MARK_FUNCS |
%ifdef MARK_FUNCS |
39 |
global %1:function |
global %1:function %1.endfunc-%1 |
40 |
%else |
%else |
41 |
global %1 |
global %1 |
42 |
%endif |
%endif |
378 |
paddd mm2, mm3 ; [ out0 | out1 ] |
paddd mm2, mm3 ; [ out0 | out1 ] |
379 |
pmaddwd mm7, mm1 ; [a0.M10+a1.M11 | b0.M26+b1.M27] |
pmaddwd mm7, mm1 ; [a0.M10+a1.M11 | b0.M26+b1.M27] |
380 |
psrad mm2, 16 |
psrad mm2, 16 |
381 |
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] |
382 |
paddd mm4, mm5 ; [ out2 | out3 ] |
paddd mm4, mm5 ; [ out2 | out3 ] |
383 |
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] |
384 |
psrad mm4, 16 |
psrad mm4, 16 |
385 |
|
|
386 |
paddd mm6, mm7 ; [ out4 | out5 ] |
paddd mm6, mm7 ; [ out4 | out5 ] |
436 |
paddd mm2, mm3 ; [ out0 | out1 ] |
paddd mm2, mm3 ; [ out0 | out1 ] |
437 |
pmaddwd mm7, mm1 ; [a0.M10+a1.M11 | b0.M26+b1.M27] |
pmaddwd mm7, mm1 ; [a0.M10+a1.M11 | b0.M26+b1.M27] |
438 |
psrad mm2, 16 |
psrad mm2, 16 |
439 |
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] |
440 |
paddd mm4, mm5 ; [ out2 | out3 ] |
paddd mm4, mm5 ; [ out2 | out3 ] |
441 |
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] |
442 |
psrad mm4, 16 |
psrad mm4, 16 |
443 |
|
|
444 |
paddd mm6, mm7 ; [ out4 | out5 ] |
paddd mm6, mm7 ; [ out4 | out5 ] |
503 |
%endif |
%endif |
504 |
|
|
505 |
ret |
ret |
506 |
|
.endfunc |
507 |
%endmacro |
%endmacro |
508 |
|
|
509 |
;============================================================================= |
;============================================================================= |