[cvs] / xvidcore / src / utils / x86_asm / mem_transfer_3dne.asm Repository:
ViewVC logotype

Diff of /xvidcore/src/utils/x86_asm/mem_transfer_3dne.asm

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

revision 1.4, Sat Jul 24 11:46:08 2004 UTC revision 1.10, Tue Nov 11 20:46:24 2008 UTC
# Line 30  Line 30 
30    
31  %macro cglobal 1  %macro cglobal 1
32          %ifdef PREFIX          %ifdef PREFIX
33                    %ifdef MARK_FUNCS
34                            global _%1:function %1.endfunc-%1
35                            %define %1 _%1:function %1.endfunc-%1
36                            %define ENDFUNC .endfunc
37                    %else
38                  global _%1                  global _%1
39                  %define %1 _%1                  %define %1 _%1
40                            %define ENDFUNC
41                    %endif
42            %else
43                    %ifdef MARK_FUNCS
44                            global %1:function %1.endfunc-%1
45                            %define ENDFUNC .endfunc
46          %else          %else
47                  global %1                  global %1
48                            %define ENDFUNC
49                    %endif
50          %endif          %endif
51  %endmacro  %endmacro
52    
# Line 71  Line 84 
84  cglobal transfer_8to16sub2_3dne  cglobal transfer_8to16sub2_3dne
85  cglobal transfer_16to8add_3dne  cglobal transfer_16to8add_3dne
86  cglobal transfer8x8_copy_3dne  cglobal transfer8x8_copy_3dne
87    cglobal transfer8x4_copy_3dne
88    
89  ;-----------------------------------------------------------------------------  ;-----------------------------------------------------------------------------
90  ;  ;
# Line 139  Line 153 
153    movq [byte ecx+1*64+48], mm6    movq [byte ecx+1*64+48], mm6
154    movq [ecx+1*64+40], mm7    movq [ecx+1*64+40], mm7
155    ret    ret
156    ENDFUNC
157    
158    
159  ;-----------------------------------------------------------------------------  ;-----------------------------------------------------------------------------
# Line 185  Line 199 
199    movq [eax+4*edx], mm7    movq [eax+4*edx], mm7
200    movq [ecx+2*edx], mm6    movq [ecx+2*edx], mm6
201    ret    ret
202    ENDFUNC
203    
204  ;-----------------------------------------------------------------------------  ;-----------------------------------------------------------------------------
205  ;  ;
# Line 243  Line 258 
258    mov eax, [esp + 8] ; Cur    mov eax, [esp + 8] ; Cur
259    mov ecx, [esp +12] ; Ref    mov ecx, [esp +12] ; Ref
260    push edi    push edi
261    mov edx, [dword esp+4+16] ; Stride    mov edx, [esp+4+16] ; Stride
262    mov edi, [esp+4+ 4] ; Dst    mov edi, [esp+4+ 4] ; Dst
263    pxor mm7, mm7    pxor mm7, mm7
264    nop    nop
# Line 254  Line 269 
269    COPY_8_TO_16_SUB 3, 1    COPY_8_TO_16_SUB 3, 1
270    mov edi, ecx    mov edi, ecx
271    ret    ret
272    ENDFUNC
273    
274  ALIGN 16  ALIGN 16
275  transfer_8to16subro_3dne:  transfer_8to16subro_3dne:
276    mov eax, [esp + 8] ; Cur    mov eax, [esp + 8] ; Cur
277    mov ecx, [esp +12] ; Ref    mov ecx, [esp +12] ; Ref
278    push edi    push edi
279    mov edx, [dword esp+4+16] ; Stride    mov edx, [esp+4+16] ; Stride
280    mov edi, [esp+4+ 4] ; Dst    mov edi, [esp+4+ 4] ; Dst
281    pxor mm7, mm7    pxor mm7, mm7
282    nop    nop
# Line 271  Line 287 
287    COPY_8_TO_16_SUB 3, 0    COPY_8_TO_16_SUB 3, 0
288    mov edi, ecx    mov edi, ecx
289    ret    ret
290    ENDFUNC
291    
292    
293  ;-----------------------------------------------------------------------------  ;-----------------------------------------------------------------------------
# Line 342  Line 359 
359    COPY_8_TO_16_SUB2_SSE 3    COPY_8_TO_16_SUB2_SSE 3
360    
361    ret    ret
362    ENDFUNC
363    
364    
365  ;-----------------------------------------------------------------------------  ;-----------------------------------------------------------------------------
# Line 389  Line 407 
407    lea ecx,[byte ecx+2*edx]    lea ecx,[byte ecx+2*edx]
408    COPY_16_TO_8_ADD 3    COPY_16_TO_8_ADD 3
409    ret    ret
410    ENDFUNC
411    
412  ;-----------------------------------------------------------------------------  ;-----------------------------------------------------------------------------
413  ;  ;
# Line 421  Line 440 
440    lea ecx,[byte ecx+2*edx]    lea ecx,[byte ecx+2*edx]
441    COPY_8_TO_8    COPY_8_TO_8
442    ret    ret
443    ENDFUNC
444    
445    ;-----------------------------------------------------------------------------
446    ;
447    ; void transfer8x4_copy_3dne(uint8_t * const dst,
448    ;                                       const uint8_t * const src,
449    ;                                       const uint32_t stride);
450    ;
451    ;
452    ;-----------------------------------------------------------------------------
453    
454    ALIGN 16
455    transfer8x4_copy_3dne:
456      mov eax, [esp+ 8] ; Src
457      mov edx, [esp+12] ; Stride
458      mov ecx, [esp+ 4] ; Dst
459    
460      COPY_8_TO_8
461      lea ecx,[byte ecx+2*edx]
462      COPY_8_TO_8
463      ret
464    ENDFUNC
465    
466    
467    %ifidn __OUTPUT_FORMAT__,elf
468    section ".note.GNU-stack" noalloc noexec nowrite progbits
469    %endif
470    

Legend:
Removed from v.1.4  
changed lines
  Added in v.1.10

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