[svn] / branches / dev-api-3 / xvidcore / src / utils / x86_asm / mem_transfer_mmx.asm Repository:
ViewVC logotype

Diff of /branches/dev-api-3/xvidcore/src/utils/x86_asm/mem_transfer_mmx.asm

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

revision 830, Tue Feb 11 21:56:31 2003 UTC revision 831, Wed Feb 12 11:46:18 2003 UTC
# Line 57  Line 57 
57  cglobal transfer_8to16copy_mmx  cglobal transfer_8to16copy_mmx
58  cglobal transfer_16to8copy_mmx  cglobal transfer_16to8copy_mmx
59  cglobal transfer_8to16sub_mmx  cglobal transfer_8to16sub_mmx
60    cglobal transfer_8to16subro_mmx
61  cglobal transfer_8to16sub2_mmx  cglobal transfer_8to16sub2_mmx
62  cglobal transfer_8to16sub2_xmm  cglobal transfer_8to16sub2_xmm
63  cglobal transfer_16to8add_mmx  cglobal transfer_16to8add_mmx
# Line 155  Line 156 
156  ; *  ; *
157  ; *************************************************************************/  ; *************************************************************************/
158    
159  %macro COPY_8_TO_16_SUB 1  ; when second argument == 1, reference (ebx) block is to current (eax)
160    %macro COPY_8_TO_16_SUB 2
161    movq mm0, [eax]      ; cur    movq mm0, [eax]      ; cur
162    movq mm2, [eax+edx]    movq mm2, [eax+edx]
163    movq mm1, mm0    movq mm1, mm0
# Line 169  Line 171 
171    movq mm5, [ebx+edx]  ; ref    movq mm5, [ebx+edx]  ; ref
172    
173    movq mm6, mm4    movq mm6, mm4
174    %if %2 == 1
175    movq [eax], mm4    movq [eax], mm4
176    movq [eax+edx], mm5    movq [eax+edx], mm5
177    %endif
178    punpcklbw mm4, mm7    punpcklbw mm4, mm7
179    punpckhbw mm6, mm7    punpckhbw mm6, mm7
180    psubsw mm0, mm4    psubsw mm0, mm4
# Line 198  Line 202 
202    mov edx, [esp+4+16] ; Stride    mov edx, [esp+4+16] ; Stride
203    pxor mm7, mm7    pxor mm7, mm7
204    
205    COPY_8_TO_16_SUB 0    COPY_8_TO_16_SUB 0, 1
206    COPY_8_TO_16_SUB 1    COPY_8_TO_16_SUB 1, 1
207    COPY_8_TO_16_SUB 2    COPY_8_TO_16_SUB 2, 1
208    COPY_8_TO_16_SUB 3    COPY_8_TO_16_SUB 3, 1
209    
210    pop ebx    pop ebx
211    ret    ret
212    
213    
214    align 16
215    transfer_8to16subro_mmx:
216      mov ecx, [esp  + 4] ; Dst
217      mov eax, [esp  + 8] ; Cur
218      push ebx
219      mov ebx, [esp+4+12] ; Ref
220      mov edx, [esp+4+16] ; Stride
221      pxor mm7, mm7
222    
223      COPY_8_TO_16_SUB 0, 0
224      COPY_8_TO_16_SUB 1, 0
225      COPY_8_TO_16_SUB 2, 0
226      COPY_8_TO_16_SUB 3, 0
227    
228      pop ebx
229      ret
230    
231    
232  ;===========================================================================  ;===========================================================================
233  ;  ;
234  ; void transfer_8to16sub2_mmx(int16_t * const dct,  ; void transfer_8to16sub2_mmx(int16_t * const dct,

Legend:
Removed from v.830  
changed lines
  Added in v.831

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