[svn] / trunk / xvidcore / src / image / x86_asm / colorspace_yuv_mmx.asm Repository:
ViewVC logotype

Diff of /trunk/xvidcore/src/image/x86_asm/colorspace_yuv_mmx.asm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1833, Mon Dec 1 14:45:46 2008 UTC revision 1834, Mon Dec 1 15:00:44 2008 UTC
# Line 19  Line 19 
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: colorspace_yuv_mmx.asm,v 1.10 2008-11-26 23:35:50 Isibaar Exp $  ; * $Id: colorspace_yuv_mmx.asm,v 1.11 2008-12-01 15:00:44 Isibaar Exp $
23  ; *  ; *
24  ; ***************************************************************************/  ; ***************************************************************************/
25    
# Line 29  Line 29 
29  ; Helper macros  ; Helper macros
30  ;=============================================================================  ;=============================================================================
31    
32    %macro _MOVQ        3
33    %if %1 == 1
34            movntq  %2, %3      ; xmm
35    %else
36            movq    %2, %3      ; plain mmx
37    %endif
38    %endmacro
39    
40  ;------------------------------------------------------------------------------  ;------------------------------------------------------------------------------
41  ; PLANE_COPY ( DST, DST_STRIDE, SRC, SRC_STRIDE, WIDTH, HEIGHT, OPT )  ; PLANE_COPY ( DST, DST_STRIDE, SRC, SRC_STRIDE, WIDTH, HEIGHT, OPT )
42  ; DST           dst buffer  ; DST           dst buffer
# Line 81  Line 89 
89    movq mm7, [SRC + 48]    movq mm7, [SRC + 48]
90    movq mm0, [SRC + 56]    movq mm0, [SRC + 56]
91    
92  %if OPT == 0                ; plain mmx    _MOVQ [DST     ], mm1      ; write to y_out
93    movq [DST     ], mm1      ; write to y_out    _MOVQ [DST +  8], mm2
94    movq [DST +  8], mm2    _MOVQ [DST + 16], mm3
95    movq [DST + 16], mm3    _MOVQ [DST + 24], mm4
96    movq [DST + 24], mm4    _MOVQ [DST + 32], mm5
97    movq [DST + 32], mm5    _MOVQ [DST + 40], mm6
98    movq [DST + 40], mm6    _MOVQ [DST + 48], mm7
99    movq [DST + 48], mm7    _MOVQ [DST + 56], mm0
   movq [DST + 56], mm0  
 %else  
   movntq [DST     ], mm1    ; write to y_out  
   movntq [DST +  8], mm2  
   movntq [DST + 16], mm3  
   movntq [DST + 24], mm4  
   movntq [DST + 32], mm5  
   movntq [DST + 40], mm6  
   movntq [DST + 48], mm7  
   movntq [DST + 56], mm0  
 %endif  
100    
101    add SRC, 64    add SRC, 64
102    add DST, 64    add DST, 64
# Line 113  Line 110 
110  %%loop16_pc:  %%loop16_pc:
111    movq mm1, [SRC]    movq mm1, [SRC]
112    movq mm2, [SRC + 8]    movq mm2, [SRC + 8]
113  %if OPT == 0                ; plain mmx  
114    movq [DST], mm1    _MOVQ [DST], mm1
115    movq [DST + 8], mm2    _MOVQ [DST + 8], mm2
 %else  
   movntq [DST], mm1  
   movntq [DST + 8], mm2  
 %endif  
116    
117    add SRC, 16    add SRC, 16
118    add DST, 16    add DST, 16
# Line 190  Line 183 
183    
184  %%loop64_pf:  %%loop64_pf:
185    
186  %if OPT == 0                 ; plain mmx    _MOVQ [DST     ], mm0      ; write to y_out
187    movq [DST     ], mm0       ; write to y_out    _MOVQ [DST +  8], mm0
188    movq [DST +  8], mm0    _MOVQ [DST + 16], mm0
189    movq [DST + 16], mm0    _MOVQ [DST + 24], mm0
190    movq [DST + 24], mm0    _MOVQ [DST + 32], mm0
191    movq [DST + 32], mm0    _MOVQ [DST + 40], mm0
192    movq [DST + 40], mm0    _MOVQ [DST + 48], mm0
193    movq [DST + 48], mm0    _MOVQ [DST + 56], mm0
   movq [DST + 56], mm0  
 %else  
   movntq [DST     ], mm0     ; write to y_out  
   movntq [DST +  8], mm0  
   movntq [DST + 16], mm0  
   movntq [DST + 24], mm0  
   movntq [DST + 32], mm0  
   movntq [DST + 40], mm0  
   movntq [DST + 48], mm0  
   movntq [DST + 56], mm0  
 %endif  
194    
195    add DST, 64    add DST, 64
196    loop %%loop64_pf    loop %%loop64_pf
# Line 219  Line 201 
201    jz %%loop1_start_pf    jz %%loop1_start_pf
202    
203  %%loop16_pf:  %%loop16_pf:
204  %if OPT == 0                 ; plain mmx    _MOVQ [DST    ], mm0
205    movq [DST    ], mm0    _MOVQ [DST + 8], mm0
   movq [DST + 8], mm0  
 %else  
   movntq [DST    ], mm0  
   movntq [DST + 8], mm0  
 %endif  
206    
207    add DST, 16    add DST, 16
208    loop %%loop16_pf    loop %%loop16_pf

Legend:
Removed from v.1833  
changed lines
  Added in v.1834

No admin address has been configured
ViewVC Help
Powered by ViewVC 1.0.4