There are MMX processors that don't support CMOV (pentium-mmx, amd-k6, cyrix 6x86). Therefore, we must not use cmov in in MMX code.
All processors supporing mmx2 also support cmov, so if a test for mmx2 succeeds, we can use cmov. --- libavcodec/x86/h264_idct.asm | 6 ++++++ 1 file changed, 6 insertions(+) Index: ffmpeg/libavcodec/x86/h264_idct.asm =================================================================== --- ffmpeg.orig/libavcodec/x86/h264_idct.asm 2014-08-25 03:59:06.376569389 +0200 +++ ffmpeg/libavcodec/x86/h264_idct.asm 2014-08-25 18:47:46.988574579 +0200 @@ -1063,7 +1063,13 @@ cglobal h264_luma_dc_dequant_idct, 3, 4, add t3d, 128 << 16 mov t1d, 7 cmp t0d, t1d +%if cpuflag(mmx2) cmovg t0d, t1d +%else + jng .skip_mov + mov t0d, t1d +.skip_mov: +%endif inc t1d shr t3d, t0b sub t1d, t0d _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel