x86inc: set the correct amount of simd regs in x86_64 when avx512 is enabled but...
authorJames Almer <jamrial@gmail.com>
Mon, 25 Dec 2017 00:34:19 +0000 (21:34 -0300)
committerJames Almer <jamrial@gmail.com>
Mon, 25 Dec 2017 02:02:54 +0000 (23:02 -0300)
Fixes compilation of libavresample/x86/audio_mix.asm

Reviewed-by: Gramner
Signed-off-by: James Almer <jamrial@gmail.com>
libavutil/x86/x86inc.asm

index f3dd2b7..196374c 100644 (file)
@@ -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