MM 153 libavcodec/x86/mpegvideoenc_template.c "movd %%"FF_REG_a", "MM"3 \n\t" // last_non_zero_p1 MM 154 libavcodec/x86/mpegvideoenc_template.c SPREADW(MM"3") MM 155 libavcodec/x86/mpegvideoenc_template.c "pxor "MM"7, "MM"7 \n\t" // 0 MM 156 libavcodec/x86/mpegvideoenc_template.c "pxor "MM"4, "MM"4 \n\t" // 0 MM 157 libavcodec/x86/mpegvideoenc_template.c MOVQ" (%2), "MM"5 \n\t" // qmat[0] MM 158 libavcodec/x86/mpegvideoenc_template.c "pxor "MM"6, "MM"6 \n\t" MM 159 libavcodec/x86/mpegvideoenc_template.c "psubw (%3), "MM"6 \n\t" // -bias[0] MM 163 libavcodec/x86/mpegvideoenc_template.c MOVQ" (%1, %%"FF_REG_a"), "MM"0 \n\t" // block[i] MM 164 libavcodec/x86/mpegvideoenc_template.c SAVE_SIGN(MM"1", MM"0") // ABS(block[i]) MM 165 libavcodec/x86/mpegvideoenc_template.c "psubusw "MM"6, "MM"0 \n\t" // ABS(block[i]) + bias[0] MM 166 libavcodec/x86/mpegvideoenc_template.c "pmulhw "MM"5, "MM"0 \n\t" // (ABS(block[i])*qmat[0] - bias[0]*qmat[0])>>16 MM 167 libavcodec/x86/mpegvideoenc_template.c "por "MM"0, "MM"4 \n\t" MM 168 libavcodec/x86/mpegvideoenc_template.c RESTORE_SIGN(MM"1", MM"0") // out=((ABS(block[i])*qmat[0] - bias[0]*qmat[0])>>16)*sign(block[i]) MM 169 libavcodec/x86/mpegvideoenc_template.c MOVQ" "MM"0, (%5, %%"FF_REG_a") \n\t" MM 170 libavcodec/x86/mpegvideoenc_template.c "pcmpeqw "MM"7, "MM"0 \n\t" // out==0 ? 0xFF : 0x00 MM 171 libavcodec/x86/mpegvideoenc_template.c MOVQ" (%4, %%"FF_REG_a"), "MM"1 \n\t" MM 172 libavcodec/x86/mpegvideoenc_template.c MOVQ" "MM"7, (%1, %%"FF_REG_a") \n\t" // 0 MM 173 libavcodec/x86/mpegvideoenc_template.c "pandn "MM"1, "MM"0 \n\t" MM 174 libavcodec/x86/mpegvideoenc_template.c PMAXW(MM"0", MM"3") MM 177 libavcodec/x86/mpegvideoenc_template.c PMAX(MM"3", MM"0") MM 178 libavcodec/x86/mpegvideoenc_template.c "movd "MM"3, %%"FF_REG_a" \n\t" MM 188 libavcodec/x86/mpegvideoenc_template.c "movd %%"FF_REG_a", "MM"3 \n\t" // last_non_zero_p1 MM 189 libavcodec/x86/mpegvideoenc_template.c SPREADW(MM"3") MM 190 libavcodec/x86/mpegvideoenc_template.c "pxor "MM"7, "MM"7 \n\t" // 0 MM 191 libavcodec/x86/mpegvideoenc_template.c "pxor "MM"4, "MM"4 \n\t" // 0 MM 195 libavcodec/x86/mpegvideoenc_template.c MOVQ" (%1, %%"FF_REG_a"), "MM"0 \n\t" // block[i] MM 196 libavcodec/x86/mpegvideoenc_template.c SAVE_SIGN(MM"1", MM"0") // ABS(block[i]) MM 197 libavcodec/x86/mpegvideoenc_template.c MOVQ" (%3, %%"FF_REG_a"), "MM"6 \n\t" // bias[0] MM 198 libavcodec/x86/mpegvideoenc_template.c "paddusw "MM"6, "MM"0 \n\t" // ABS(block[i]) + bias[0] MM 199 libavcodec/x86/mpegvideoenc_template.c MOVQ" (%2, %%"FF_REG_a"), "MM"5 \n\t" // qmat[i] MM 200 libavcodec/x86/mpegvideoenc_template.c "pmulhw "MM"5, "MM"0 \n\t" // (ABS(block[i])*qmat[0] + bias[0]*qmat[0])>>16 MM 201 libavcodec/x86/mpegvideoenc_template.c "por "MM"0, "MM"4 \n\t" MM 202 libavcodec/x86/mpegvideoenc_template.c RESTORE_SIGN(MM"1", MM"0") // out=((ABS(block[i])*qmat[0] - bias[0]*qmat[0])>>16)*sign(block[i]) MM 203 libavcodec/x86/mpegvideoenc_template.c MOVQ" "MM"0, (%5, %%"FF_REG_a") \n\t" MM 204 libavcodec/x86/mpegvideoenc_template.c "pcmpeqw "MM"7, "MM"0 \n\t" // out==0 ? 0xFF : 0x00 MM 205 libavcodec/x86/mpegvideoenc_template.c MOVQ" (%4, %%"FF_REG_a"), "MM"1 \n\t" MM 206 libavcodec/x86/mpegvideoenc_template.c MOVQ" "MM"7, (%1, %%"FF_REG_a") \n\t" // 0 MM 207 libavcodec/x86/mpegvideoenc_template.c "pandn "MM"1, "MM"0 \n\t" MM 208 libavcodec/x86/mpegvideoenc_template.c PMAXW(MM"0", MM"3") MM 211 libavcodec/x86/mpegvideoenc_template.c PMAX(MM"3", MM"0") MM 212 libavcodec/x86/mpegvideoenc_template.c "movd "MM"3, %%"FF_REG_a" \n\t" MM 222 libavcodec/x86/mpegvideoenc_template.c "movd %1, "MM"1 \n\t" // max_qcoeff MM 223 libavcodec/x86/mpegvideoenc_template.c SPREADW(MM"1") MM 224 libavcodec/x86/mpegvideoenc_template.c "psubusw "MM"1, "MM"4 \n\t" MM 225 libavcodec/x86/mpegvideoenc_template.c "packuswb "MM"4, "MM"4 \n\t" MM 227 libavcodec/x86/mpegvideoenc_template.c "packsswb "MM"4, "MM"4 \n\t" MM 229 libavcodec/x86/mpegvideoenc_template.c "movd "MM"4, %0 \n\t" // *overflow