[XviD-devel] [Fwd: quant4_inter_xmm large quant bug - hopefully fixed]

suxen_drol xvid-devel@xvid.org
Sun, 29 Dec 2002 18:21:16 +1100


On Sat, 28 Dec 2002 18:39:07 +0100 Dirk Knop <dknop@gwdg.de> wrote:

note: there are more changes than those listed. 
unfortunately i dont have xmm hardware to test this.


+++ quantize4_xmm.asm   Sat Dec 28 16:29:00 2002
@@ -576,18 +576,18 @@
                movq mm6,[mmx_div + ecx * 8 - 8] ; divs for q<=16
                pmulhuw mm0,[inter_matrix_fix + 8*esi+112] ;correction
                pmulhuw mm3,[inter_matrix_fix + 8*esi+120]
+               paddw mm2,[ebx+8]   ;sum
                paddw mm5,mm0 ;final result
                paddw mm7,mm3
                movq mm0,[edi]
                movq mm3,[edi]
-               mov esp,esp
                pmulhuw mm5, mm6                ; mm0 = (mm0 / 2Q) >> 16
                pmulhuw mm7, mm6                ;  (level ) / quant (0<quant<32)

                add esi,byte 2
-               paddw   mm2,mm5 ;sum += x1
-               movq    [ebx],mm7 ;store x2
                psrlw   mm5, 1                  ; (level ) / (2*quant)
+               paddw   mm2,mm5 ;sum += x1
                psrlw   mm7, 1
+               movq    [ebx],mm7 ;store x2
                pxor    mm5, mm1                ; mm0 *= sign(mm0)
                pxor    mm7, mm4                ;
                psubw   mm5, mm1                ; undisplace


-- pete