avcodec/fft: fix INTERL macro on 3dnow
authorMikulas Patocka <mikulas@twibright.com>
Thu, 23 Nov 2017 19:12:55 +0000 (20:12 +0100)
committerJames Almer <jamrial@gmail.com>
Sat, 25 Nov 2017 16:11:45 +0000 (13:11 -0300)
The commit b7c16a3f2c4921f613319938b8ee0e3d6fa83e8d ("x86: fft: Port to
cpuflags") breaks the opus decoder in ffmpeg when compiling for 3dnow. The
output is audible, but there's a lot of noise.

The reason for the breakage is that the commit unintentionally changed the
INTERL macro so that it is empty when compiling for 3dnow. This patch
fixes it.

Signed-off-by: Mikulas Patocka <mikulas@twibright.com>
Signed-off-by: James Almer <jamrial@gmail.com>
libavcodec/x86/fft.asm

index 53cfd64..a671e8f 100644 (file)
@@ -199,7 +199,7 @@ SECTION .text
     vextractf128  %4 %+ H(%5), %3, 0
     vextractf128   %4(%5 + 1), %2, 1
     vextractf128  %4 %+ H(%5 + 1), %3, 1
-%elif cpuflag(sse)
+%elif cpuflag(sse) || cpuflag(3dnow)
     mova     %3, %2
     unpcklps %2, %1
     unpckhps %3, %1