[svn] / trunk / xvidcore / src / image / x86_asm / postprocessing_sse2.asm Repository:
ViewVC logotype

Diff of /trunk/xvidcore/src/image/x86_asm/postprocessing_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 66  Line 66 
66    
67  ALIGN SECTION_ALIGN  ALIGN SECTION_ALIGN
68  image_brightness_sse2:  image_brightness_sse2:
   PUSH_XMM6_XMM7  
69  %ifdef ARCH_IS_X86_64  %ifdef ARCH_IS_X86_64
70    movsx _EAX, prm5d    movsx _EAX, prm5d
71  %else  %else
# Line 79  Line 78 
78    push _EDI    ; 8 bytes offset for push    push _EDI    ; 8 bytes offset for push
79    sub _ESP, 32 ; 32 bytes for local data (16bytes will be used, 16bytes more to align correctly mod 16)    sub _ESP, 32 ; 32 bytes for local data (16bytes will be used, 16bytes more to align correctly mod 16)
80    
81    movdqa xmm6, [xmm_0x80]    movdqa xmm2, [xmm_0x80]
82    
83    ; Create a offset...offset vector    ; Create a offset...offset vector
84    mov _ESI, _ESP          ; TMP1 will be esp aligned mod 16    mov _ESI, _ESP          ; TMP1 will be esp aligned mod 16
85    add _ESI, 15            ; TMP1 = esp + 15    add _ESI, 15            ; TMP1 = esp + 15
86    and _ESI, ~15           ; TMP1 = (esp + 15)&(~15)    and _ESI, ~15           ; TMP1 = (esp + 15)&(~15)
87    CREATE_OFFSET_VECTOR _ESI, al    CREATE_OFFSET_VECTOR _ESI, al
88    movdqa xmm7, [_ESI]    movdqa xmm3, [_ESI]
89    
90  %ifdef ARCH_IS_X86_64  %ifdef ARCH_IS_X86_64
91    mov _ESI, prm3    mov _ESI, prm3
# Line 103  Line 102 
102    movdqa xmm0, [TMP1 + _EAX]    movdqa xmm0, [TMP1 + _EAX]
103    movdqa xmm1, [TMP1 + _EAX + 16] ; xmm0 = [dst]    movdqa xmm1, [TMP1 + _EAX + 16] ; xmm0 = [dst]
104    
105    paddb xmm0, xmm6              ; unsigned -> signed domain    paddb xmm0, xmm2              ; unsigned -> signed domain
106    paddb xmm1, xmm6    paddb xmm1, xmm2
107    paddsb xmm0, xmm7    paddsb xmm0, xmm3
108    paddsb xmm1, xmm7             ; xmm0 += offset    paddsb xmm1, xmm3             ; xmm0 += offset
109    psubb xmm0, xmm6    psubb xmm0, xmm2
110    psubb xmm1, xmm6              ; signed -> unsigned domain    psubb xmm1, xmm2              ; signed -> unsigned domain
111    
112    movdqa [TMP1 + _EAX], xmm0    movdqa [TMP1 + _EAX], xmm0
113    movdqa [TMP1 + _EAX + 16], xmm1 ; [dst] = xmm0    movdqa [TMP1 + _EAX + 16], xmm1 ; [dst] = xmm0
# Line 125  Line 124 
124    pop _EDI    pop _EDI
125    pop _ESI    pop _ESI
126    
   POP_XMM6_XMM7  
127    ret    ret
128  ENDFUNC  ENDFUNC
129  ;//////////////////////////////////////////////////////////////////////  ;//////////////////////////////////////////////////////////////////////

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