Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- From ed9dc14cbfa6430b4e10ba9a290fa9b884897aed Mon Sep 17 00:00:00 2001
- From: James Almer <jamrial@gmail.com>
- Date: Sun, 24 Dec 2017 20:45:30 -0300
- Subject: [PATCH] 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
- Signed-off-by: James Almer <jamrial@gmail.com>
- ---
- libavutil/x86/x86inc.asm | 14 ++++++++++----
- 1 file changed, 10 insertions(+), 4 deletions(-)
- diff --git a/libavutil/x86/x86inc.asm b/libavutil/x86/x86inc.asm
- index f3dd2b788a..b30c55c673 100644
- --- a/libavutil/x86/x86inc.asm
- +++ b/libavutil/x86/x86inc.asm
- @@ -919,19 +919,22 @@ BRANCH_INSTR jz, je, jnz, jne, jl, jle, jnl, jnle, jg, jge, jng, jnge, ja, jae,
- %define mmsize 16
- %define num_mmregs 8
- %if ARCH_X86_64
- - %define num_mmregs 32
- + %define num_mmregs 16
- %endif
- %define mova movdqa
- %define movu movdqu
- %define movh movq
- %define movnta movntdq
- + INIT_CPUFLAGS %1
- + %if cpuflag(avx512)
- + %define num_mmregs 32
- + %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
- @@ -944,19 +947,22 @@ BRANCH_INSTR jz, je, jnz, jne, jl, jle, jnl, jnle, jg, jge, jng, jnge, ja, jae,
- %define mmsize 32
- %define num_mmregs 8
- %if ARCH_X86_64
- - %define num_mmregs 32
- + %define num_mmregs 16
- %endif
- %define mova movdqa
- %define movu movdqu
- %undef movh
- %define movnta movntdq
- + INIT_CPUFLAGS %1
- + %if cpuflag(avx512)
- + %define num_mmregs 32
- + %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
- --
- 2.15.0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement