# HG changeset patch # User gpoirier # Date 1219567280 0 # Node ID c4e4df98b703b28431fb142cd81ced006e3ee70b # Parent a08c1a035386b4be098c1ec339615b170922ff2c stricter constraints of asm() blocks All these variables are used as left operands of a movd instruction, which does accept only memory or register operands while the "g" constraint also allows immediates. Use "rm" instead. Patch by Alexis Ballier %alexis P ballier A gmail P com% diff -r a08c1a035386 -r c4e4df98b703 i386/mpegvideo_mmx.c --- a/i386/mpegvideo_mmx.c Sun Aug 24 08:31:19 2008 +0000 +++ b/i386/mpegvideo_mmx.c Sun Aug 24 08:41:20 2008 +0000 @@ -99,7 +99,7 @@ "add $16, %3 \n\t" "jng 1b \n\t" - ::"r" (block+nCoeffs), "g"(qmul), "g" (qadd), "r" (2*(-nCoeffs)) + ::"r" (block+nCoeffs), "rm"(qmul), "rm" (qadd), "r" (2*(-nCoeffs)) : "memory" ); block[0]= level; @@ -162,7 +162,7 @@ "add $16, %3 \n\t" "jng 1b \n\t" - ::"r" (block+nCoeffs), "g"(qmul), "g" (qadd), "r" (2*(-nCoeffs)) + ::"r" (block+nCoeffs), "rm"(qmul), "rm" (qadd), "r" (2*(-nCoeffs)) : "memory" ); } @@ -260,7 +260,7 @@ "add $16, %%"REG_a" \n\t" "js 1b \n\t" - ::"r" (block+nCoeffs), "r"(quant_matrix+nCoeffs), "g" (qscale), "g" (-2*nCoeffs) + ::"r" (block+nCoeffs), "r"(quant_matrix+nCoeffs), "rm" (qscale), "g" (-2*nCoeffs) : "%"REG_a, "memory" ); block[0]= block0; @@ -327,7 +327,7 @@ "add $16, %%"REG_a" \n\t" "js 1b \n\t" - ::"r" (block+nCoeffs), "r"(quant_matrix+nCoeffs), "g" (qscale), "g" (-2*nCoeffs) + ::"r" (block+nCoeffs), "r"(quant_matrix+nCoeffs), "rm" (qscale), "g" (-2*nCoeffs) : "%"REG_a, "memory" ); } @@ -391,7 +391,7 @@ "add $16, %%"REG_a" \n\t" "jng 1b \n\t" - ::"r" (block+nCoeffs), "r"(quant_matrix+nCoeffs), "g" (qscale), "g" (-2*nCoeffs) + ::"r" (block+nCoeffs), "r"(quant_matrix+nCoeffs), "rm" (qscale), "g" (-2*nCoeffs) : "%"REG_a, "memory" ); block[0]= block0; @@ -470,7 +470,7 @@ "pxor %%mm7, %%mm0 \n\t" "movd %%mm0, 124(%0, %3) \n\t" - ::"r" (block+nCoeffs), "r"(quant_matrix+nCoeffs), "g" (qscale), "r" (-2*nCoeffs) + ::"r" (block+nCoeffs), "r"(quant_matrix+nCoeffs), "rm" (qscale), "r" (-2*nCoeffs) : "%"REG_a, "memory" ); }