[XviD-devel] [Fwd: quant4_inter_xmm large quant bug - hopefully
fixed]
Dirk Knop
xvid-devel@xvid.org
Sun, 29 Dec 2002 13:16:54 +0100
Hi,
I put a new binary online for testing that fixed code, and xvid still
crashes (on high quantizers).
Would be nice if someone would look into that matter, I've no knowledge
about MMX instructions (should search some docs I think).
Maybe the additional changes to the posted ones cause this?
Best regards,
Koepi
suxen_drol wrote:
>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
>
>