[FFmpeg-cvslog] x86inc: set the correct amount of simd regs in x86_64 when avx512 is enabled but not used

James Almer git at videolan.org
Mon Dec 25 04:32:23 EET 2017


ffmpeg | branch: master | James Almer <jamrial at gmail.com> | Sun Dec 24 21:34:19 2017 -0300| [90d216cb90398ffb92e9e8361656ad619a985b64] | committer: James Almer

x86inc: set the correct amount of simd regs in x86_64 when avx512 is enabled but not used

Fixes compilation of libavresample/x86/audio_mix.asm

Reviewed-by: Gramner
Signed-off-by: James Almer <jamrial at gmail.com>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=90d216cb90398ffb92e9e8361656ad619a985b64
---

 libavutil/x86/x86inc.asm | 26 ++++++++++++++++----------
 1 file changed, 16 insertions(+), 10 deletions(-)

diff --git a/libavutil/x86/x86inc.asm b/libavutil/x86/x86inc.asm
index f3dd2b788a..196374c348 100644
--- a/libavutil/x86/x86inc.asm
+++ b/libavutil/x86/x86inc.asm
@@ -917,21 +917,24 @@ BRANCH_INSTR jz, je, jnz, jne, jl, jle, jnl, jnle, jg, jge, jng, jnge, ja, jae,
     %assign avx_enabled 0
     %define RESET_MM_PERMUTATION INIT_XMM %1
     %define mmsize 16
-    %define num_mmregs 8
-    %if ARCH_X86_64
-        %define num_mmregs 32
-    %endif
     %define mova movdqa
     %define movu movdqu
     %define movh movq
     %define movnta movntdq
+    INIT_CPUFLAGS %1
+    %define num_mmregs 8
+    %if ARCH_X86_64
+        %define num_mmregs 16
+        %if cpuflag(avx512)
+            %define num_mmregs 32
+        %endif
+    %endif
     %assign %%i 0
     %rep num_mmregs
         CAT_XDEFINE m, %%i, xmm %+ %%i
         CAT_XDEFINE nnxmm, %%i, %%i
         %assign %%i %%i+1
     %endrep
-    INIT_CPUFLAGS %1
     %if WIN64
         ; Swap callee-saved registers with volatile registers
         AVX512_MM_PERMUTATION 6
@@ -942,21 +945,24 @@ BRANCH_INSTR jz, je, jnz, jne, jl, jle, jnl, jnle, jg, jge, jng, jnge, ja, jae,
     %assign avx_enabled 1
     %define RESET_MM_PERMUTATION INIT_YMM %1
     %define mmsize 32
-    %define num_mmregs 8
-    %if ARCH_X86_64
-        %define num_mmregs 32
-    %endif
     %define mova movdqa
     %define movu movdqu
     %undef movh
     %define movnta movntdq
+    INIT_CPUFLAGS %1
+    %define num_mmregs 8
+    %if ARCH_X86_64
+        %define num_mmregs 16
+        %if cpuflag(avx512)
+            %define num_mmregs 32
+        %endif
+    %endif
     %assign %%i 0
     %rep num_mmregs
         CAT_XDEFINE m, %%i, ymm %+ %%i
         CAT_XDEFINE nnymm, %%i, %%i
         %assign %%i %%i+1
     %endrep
-    INIT_CPUFLAGS %1
     AVX512_MM_PERMUTATION
 %endmacro
 



More information about the ffmpeg-cvslog mailing list