[svn] / trunk / xvidcore / src / bitstream / x86_asm / cbp_sse2.asm Repository:
ViewVC logotype

Diff of /trunk/xvidcore/src/bitstream/x86_asm/cbp_sse2.asm

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

revision 1838, Mon Dec 1 17:27:03 2008 UTC revision 1839, Tue Dec 2 13:44:55 2008 UTC
# Line 20  Line 20 
20  ; *  along with this program ; if not, write to the Free Software  ; *  along with this program ; if not, write to the Free Software
21  ; *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA  ; *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
22  ; *  ; *
23  ; * $Id: cbp_sse2.asm,v 1.11 2008-12-01 14:45:45 Isibaar Exp $  ; * $Id: cbp_sse2.asm,v 1.12 2008-12-02 13:44:55 Isibaar Exp $
24  ; *  ; *
25  ; ***************************************************************************/  ; ***************************************************************************/
26    
# Line 32  Line 32 
32    
33  %macro LOOP_SSE2 2  %macro LOOP_SSE2 2
34    movdqa xmm0, [%2+(%1)*128]    movdqa xmm0, [%2+(%1)*128]
35    pand xmm0, xmm7    pand xmm0, xmm3
36    movdqa xmm1, [%2+(%1)*128+16]    movdqa xmm1, [%2+(%1)*128+16]
37    
38    por xmm0, [%2+(%1)*128+32]    por xmm0, [%2+(%1)*128+32]
# Line 43  Line 43 
43    por xmm1, [%2+(%1)*128+112]    por xmm1, [%2+(%1)*128+112]
44    
45    por xmm0, xmm1        ; xmm0 = xmm1 = 128 bits worth of info    por xmm0, xmm1        ; xmm0 = xmm1 = 128 bits worth of info
46    psadbw xmm0, xmm6     ; contains 2 dwords with sums    psadbw xmm0, xmm2     ; contains 2 dwords with sums
47    movhlps xmm1, xmm0    ; move high dword from xmm0 to low xmm1    movhlps xmm1, xmm0    ; move high dword from xmm0 to low xmm1
48    por xmm0, xmm1        ; combine    por xmm0, xmm1        ; combine
49    movd ecx, xmm0        ; if ecx set, values were found    movd ecx, xmm0        ; if ecx set, values were found
# Line 76  Line 76 
76    mov _EDX, prm1           ; coeff[]    mov _EDX, prm1           ; coeff[]
77    xor _EAX, _EAX           ; cbp = 0    xor _EAX, _EAX           ; cbp = 0
78    
79    PUSH_XMM6_XMM7    movdqu xmm3, [ignore_dc] ; mask to ignore dc value
80      pxor xmm2, xmm2          ; zero
   movdqu xmm7, [ignore_dc] ; mask to ignore dc value  
   pxor xmm6, xmm6          ; zero  
81    
82    LOOP_SSE2 0, _EDX    LOOP_SSE2 0, _EDX
83    jz .blk2    jz .blk2
# Line 112  Line 110 
110    
111  .finished:  .finished:
112    
   POP_XMM6_XMM7  
113    ret    ret
114  ENDFUNC  ENDFUNC
115    

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

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