Index: src/dct/x86_asm/fdct_mmx_skal.asm =================================================================== RCS file: /xvid/xvidcore/src/dct/x86_asm/fdct_mmx_skal.asm,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- src/dct/x86_asm/fdct_mmx_skal.asm 29 Aug 2004 10:02:38 -0000 1.6 +++ src/dct/x86_asm/fdct_mmx_skal.asm 11 Sep 2007 12:41:13 -0000 1.7 @@ -378,9 +378,9 @@ paddd mm2, mm3 ; [ out0 | out1 ] pmaddwd mm7, mm1 ; [a0.M10+a1.M11 | b0.M26+b1.M27] psrad mm2, 16 - pmaddwd mm0, qword [%3 + 48] ; [a0.M12+a1.M13 | b0.M28+b1.M29] + pmaddwd mm0, [%3 + 48] ; [a0.M12+a1.M13 | b0.M28+b1.M29] paddd mm4, mm5 ; [ out2 | out3 ] - pmaddwd mm1, qword [%3 + 56] ; [a0.M14+a1.M15 | b0.M30+b1.M31] + pmaddwd mm1, [%3 + 56] ; [a0.M14+a1.M15 | b0.M30+b1.M31] psrad mm4, 16 paddd mm6, mm7 ; [ out4 | out5 ] @@ -436,9 +436,9 @@ paddd mm2, mm3 ; [ out0 | out1 ] pmaddwd mm7, mm1 ; [a0.M10+a1.M11 | b0.M26+b1.M27] psrad mm2, 16 - pmaddwd mm0, qword [%3 + 48] ; [a0.M12+a1.M13 | b0.M28+b1.M29] + pmaddwd mm0, [%3 + 48] ; [a0.M12+a1.M13 | b0.M28+b1.M29] paddd mm4, mm5 ; [ out2 | out3 ] - pmaddwd mm1, qword [%3 + 56] ; [a0.M14+a1.M15 | b0.M30+b1.M31] + pmaddwd mm1, [%3 + 56] ; [a0.M14+a1.M15 | b0.M30+b1.M31] psrad mm4, 16 paddd mm6, mm7 ; [ out4 | out5 ] Index: src/image/x86_asm/interpolate8x8_3dne.asm =================================================================== RCS file: /xvid/xvidcore/src/image/x86_asm/interpolate8x8_3dne.asm,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- src/image/x86_asm/interpolate8x8_3dne.asm 13 Sep 2005 12:12:15 -0000 1.7 +++ src/image/x86_asm/interpolate8x8_3dne.asm 11 Sep 2007 12:41:13 -0000 1.8 @@ -97,7 +97,13 @@ %if (%1) movq mm0, [eax] %else - movq mm0, [dword eax] + movq mm0, [eax+0] + ; --- + ; nasm >0.99.x rejects the original statement: + ; movq mm0, [dword eax] + ; as it is ambiguous. for this statement nasm <0.99.x would + ; generate "movq mm0,[eax+0]" + ; --- %endif pavgb mm0, [eax+1] movq mm1, [eax+edx] Index: src/motion/x86_asm/sad_3dne.asm =================================================================== RCS file: /xvid/xvidcore/src/motion/x86_asm/sad_3dne.asm,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- src/motion/x86_asm/sad_3dne.asm 29 Aug 2004 10:02:38 -0000 1.6 +++ src/motion/x86_asm/sad_3dne.asm 11 Sep 2007 12:41:13 -0000 1.7 @@ -180,7 +180,7 @@ movq mm1, [eax+2*ecx+8] psadbw mm3, mm4 - movq mm0, [dword eax+edx] + movq mm0, [eax+edx+0] psadbw mm2, mm4 add eax, edx psadbw mm1, mm4 Index: src/quant/x86_asm/quantize_h263_3dne.asm =================================================================== RCS file: /xvid/xvidcore/src/quant/x86_asm/quantize_h263_3dne.asm,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- src/quant/x86_asm/quantize_h263_3dne.asm 29 Aug 2004 10:02:38 -0000 1.5 +++ src/quant/x86_asm/quantize_h263_3dne.asm 11 Sep 2007 12:41:13 -0000 1.6 @@ -396,7 +396,7 @@ quant_intra1 3 psubw mm5, mm4 ;C8 - mov esi, [dword esp + 12] ; pop back the register value + mov esi, [esp + 12] ; pop back the register value mov edi, [esp + 4] ; pop back the register value sar eax, 16 lea ebx, [byte eax + 1] ; workaround for eax < 0 @@ -755,7 +755,7 @@ pmaxsw mm2, mm3 ;|c| ;B4 (2nd) pmullw mm2, [edi] ;*= 2Q ;B8 (3rd+) psraw mm3, 15 ; sign(c) ;B7 (2nd) - mov edx, [dword esp+ 4+12] ; data + mov edx, [esp+ 4+12] ; data ALIGN 8 Index: src/utils/x86_asm/mem_transfer_3dne.asm =================================================================== RCS file: /xvid/xvidcore/src/utils/x86_asm/mem_transfer_3dne.asm,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- src/utils/x86_asm/mem_transfer_3dne.asm 13 Sep 2005 12:12:15 -0000 1.7 +++ src/utils/x86_asm/mem_transfer_3dne.asm 11 Sep 2007 12:41:13 -0000 1.8 @@ -254,7 +254,7 @@ mov eax, [esp + 8] ; Cur mov ecx, [esp +12] ; Ref push edi - mov edx, [dword esp+4+16] ; Stride + mov edx, [esp+4+16] ; Stride mov edi, [esp+4+ 4] ; Dst pxor mm7, mm7 nop @@ -272,7 +272,7 @@ mov eax, [esp + 8] ; Cur mov ecx, [esp +12] ; Ref push edi - mov edx, [dword esp+4+16] ; Stride + mov edx, [esp+4+16] ; Stride mov edi, [esp+4+ 4] ; Dst pxor mm7, mm7 nop Index: build/generic/configure.in =================================================================== RCS file: /xvid/xvidcore/build/generic/configure.in,v retrieving revision 1.22 retrieving revision 1.23 diff -u -r1.22 -r1.23 --- build/generic/configure.in 21 Dec 2006 23:29:27 -0000 1.22 +++ build/generic/configure.in 23 Nov 2007 10:44:11 -0000 1.23 @@ -17,6 +17,8 @@ dnl NASM version requirement minimum_nasm_patch_version=34 +minimum_nasm_minor_version=99 +minimum_nasm_major_version=2 nasm_prog="nasm" yasm_prog="yasm" @@ -364,14 +366,31 @@ dnl AC_MSG_CHECKING([for nasm patch version]) nasm_patch=`$nasm_prog -r | cut -d '.' -f 3 | cut -d ' ' -f 1` + nasm_minor=`$nasm_prog -v | cut -d '.' -f 2 | cut -d ' ' -f 1` + nasm_major=`$nasm_prog -v | cut -d '.' -f 1 | cut -d ' ' -f 3` if test -z $nasm_patch ; then nasm_patch=-1 fi + if test -z $nasm_minor ; then + nasm_minor=-1 + fi + if test -z $nasm_major ; then + nasm_major=-1 + fi AC_MSG_RESULT([$nasm_patch]) - if test "$nasm_patch" -lt "$minimum_nasm_patch_version" ; then - AC_MSG_WARN([nasm patch version is too old]) + if test "$nasm_minor" -lt "$minimum_nasm_minor_version" ; then + if test "$nasm_major" -lt "$minimum_nasm_major_version" ; then + AC_MSG_WARN([nasm version is too old]) + else + found_nasm_comp_prog="yes" + chosen_asm_prog="$nasm_prog" + fi + else + found_nasm_comp_prog="yes" + chosen_asm_prog="$nasm_prog" + fi else found_nasm_comp_prog="yes" chosen_asm_prog="$nasm_prog"