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

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

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

revision 1795, Wed Nov 26 01:04:34 2008 UTC revision 1877, Wed Sep 16 17:11:39 2009 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: quantize_h263_3dne.asm,v 1.9 2008-11-26 01:04:34 Isibaar Exp $  ; * $Id: quantize_h263_3dne.asm,v 1.12 2009-09-16 17:07:58 Isibaar Exp $
23  ; *  ; *
24  ; *************************************************************************/  ; *************************************************************************/
25  ;  ;
# Line 135  Line 135 
135  ; Code  ; Code
136  ;=============================================================================  ;=============================================================================
137    
138  SECTION .rotext align=SECTION_ALIGN  TEXT
   
139    
140  ;-----------------------------------------------------------------------------  ;-----------------------------------------------------------------------------
141  ;  ;
# Line 344  Line 343 
343  %endif  %endif
344    
345    push _EBX    push _EBX
346    mov _EBX, mmzero    lea _EBX, [mmzero]
347    push _EDI    push _EDI
348    jz near .q1loop    jz near .q1loop
349    
# Line 753  Line 752 
752    lea _EDI, [mmx_mul + _EAX*8 - 8]    ; 2*quant    lea _EDI, [mmx_mul + _EAX*8 - 8]    ; 2*quant
753  %endif  %endif
754    push _EBP    push _EBP
755    mov _EBX, mmx_2047    lea _EBX, [mmx_2047]
756    movsx _EBP, word [_ECX]    movsx _EBP, word [_ECX]
757  %ifdef ARCH_IS_X86_64  %ifdef ARCH_IS_X86_64
758    lea r9, [mmx_add]    lea r9, [mmx_add]
# Line 762  Line 761 
761    lea _EAX, [mmx_add + _EAX*8 - 8]    ; quant or quant-1    lea _EAX, [mmx_add + _EAX*8 - 8]    ; quant or quant-1
762  %endif  %endif
763    push _ESI    push _ESI
764    mov _ESI, mmzero    lea _ESI, [mmzero]
765    pxor mm7, mm7    pxor mm7, mm7
766    movq mm3, [_ECX+120]               ;B2 ; c  = coeff[i]    movq mm3, [_ECX+120]               ;B2 ; c  = coeff[i]
767    pcmpeqw mm7, [_ECX+120]            ;B6 (c ==0) ? -1 : 0 (1st)    pcmpeqw mm7, [_ECX+120]            ;B6 (c ==0) ? -1 : 0 (1st)
# Line 876  Line 875 
875  %else  %else
876    lea _EDI, [mmx_mul + _EAX*8 - 8]    ; 2*quant    lea _EDI, [mmx_mul + _EAX*8 - 8]    ; 2*quant
877  %endif  %endif
878    mov _EBX, mmx_2047    lea _EBX, [mmx_2047]
879    pxor mm7, mm7    pxor mm7, mm7
880    movq mm3, [_ECX+120]               ;B2 ; c  = coeff[i]    movq mm3, [_ECX+120]               ;B2 ; c  = coeff[i]
881    pcmpeqw mm7, [_ECX+120]            ;B6 (c ==0) ? -1 : 0 (1st)    pcmpeqw mm7, [_ECX+120]            ;B6 (c ==0) ? -1 : 0 (1st)
# Line 887  Line 886 
886    lea _EAX, [mmx_add + _EAX*8 - 8]    ; quant or quant-1    lea _EAX, [mmx_add + _EAX*8 - 8]    ; quant or quant-1
887  %endif  %endif
888    psubw mm2, mm3                    ;-c ;B3 (1st dep)    psubw mm2, mm3                    ;-c ;B3 (1st dep)
889    mov _ESI, mmzero    lea _ESI, [mmzero]
890    pmaxsw mm2, mm3                   ;|c|        ;B4 (2nd)    pmaxsw mm2, mm3                   ;|c|        ;B4 (2nd)
891    pmullw mm2, [_EDI]                 ;*= 2Q      ;B8 (3rd+)    pmullw mm2, [_EDI]                 ;*= 2Q      ;B8 (3rd+)
892    psraw mm3, 15                     ; sign(c)   ;B7 (2nd)    psraw mm3, 15                     ; sign(c)   ;B7 (2nd)
# Line 931  Line 930 
930    ret    ret
931  ENDFUNC  ENDFUNC
932    
933  %ifidn __OUTPUT_FORMAT__,elf  NON_EXEC_STACK
 section ".note.GNU-stack" noalloc noexec nowrite progbits  
 %endif  
   

Legend:
Removed from v.1795  
changed lines
  Added in v.1877

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