[svn] / trunk / xvidcore / src / quant / x86_asm / quantize_h263_mmx.asm Repository:
ViewVC logotype

Diff of /trunk/xvidcore/src/quant/x86_asm/quantize_h263_mmx.asm

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

revision 1833, Mon Dec 1 14:45:46 2008 UTC revision 1839, Tue Dec 2 13:44:55 2008 UTC
# Line 21  Line 21 
21  ; *  along with this program ; if not, write to the Free Software  ; *  along with this program ; if not, write to the Free Software
22  ; *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA  ; *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
23  ; *  ; *
24  ; * $Id: quantize_h263_mmx.asm,v 1.12 2008-12-01 14:45:46 Isibaar Exp $  ; * $Id: quantize_h263_mmx.asm,v 1.13 2008-12-02 13:44:55 Isibaar Exp $
25  ; *  ; *
26  ; ****************************************************************************/  ; ****************************************************************************/
27    
# Line 247  Line 247 
247    
248  ALIGN SECTION_ALIGN  ALIGN SECTION_ALIGN
249  quant_h263_intra_sse2:  quant_h263_intra_sse2:
250      PUSH_XMM6_XMM7
251    mov _EAX, prm2     ; data    mov _EAX, prm2     ; data
252    
253    movsx _EAX, word [_EAX]      ; data[0]    movsx _EAX, word [_EAX]      ; data[0]
# Line 363  Line 363 
363    mov TMP1, prm1     ; coeff    mov TMP1, prm1     ; coeff
364    mov [TMP1],ax    mov [TMP1],ax
365    xor _EAX,_EAX            ; return 0    xor _EAX,_EAX            ; return 0
366      POP_XMM6_XMM7
367    ret    ret
368  ENDFUNC  ENDFUNC
369    
# Line 491  Line 491 
491    pxor xmm5, xmm5                           ; sum    pxor xmm5, xmm5                           ; sum
492    
493    lea TMP0, [mmx_sub]    lea TMP0, [mmx_sub]
494    movq mm0, [TMP0 + _EAX*8 - 8]             ; sub    movq xmm6, [TMP0 + _EAX*8 - 8]             ; sub
   movq2dq xmm6, mm0                         ; load into low 8 bytes  
495    movlhps xmm6, xmm6                        ; duplicate into high 8 bytes    movlhps xmm6, xmm6                        ; duplicate into high 8 bytes
496    
497    cmp al, 1    cmp al, 1
# Line 500  Line 499 
499    
500  .qes2_not1:  .qes2_not1:
501    lea TMP0, [mmx_div]    lea TMP0, [mmx_div]
502    movq mm0, [TMP0 + _EAX*8 - 8]          ; divider    movq xmm7, [TMP0 + _EAX*8 - 8]          ; divider
503    
504    xor TMP0, TMP0    xor TMP0, TMP0
505    mov _EAX, prm2      ; data    mov _EAX, prm2      ; data
506    
   movq2dq xmm7, mm0  
507    movlhps xmm7, xmm7    movlhps xmm7, xmm7
508    
509  ALIGN SECTION_ALIGN  ALIGN SECTION_ALIGN
# Line 538  Line 536 
536    jnz .qes2_loop    jnz .qes2_loop
537    
538  .qes2_done:  .qes2_done:
539    movdqu xmm6, [plus_one]    movdqa xmm6, [plus_one]
540    pmaddwd xmm5, xmm6    pmaddwd xmm5, xmm6
541    movhlps xmm6, xmm5    movhlps xmm6, xmm5
542    paddd xmm5, xmm6    paddd xmm5, xmm6

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

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