mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
x86inc: Various minor backports from x264
Signed-off-by: Anton Khirnov <anton@khirnov.net>
This commit is contained in:
parent
26ac22e5e7
commit
44b4444120
@ -1,7 +1,7 @@
|
||||
;*****************************************************************************
|
||||
;* x86inc.asm: x264asm abstraction layer
|
||||
;*****************************************************************************
|
||||
;* Copyright (C) 2005-2013 x264 project
|
||||
;* Copyright (C) 2005-2015 x264 project
|
||||
;*
|
||||
;* Authors: Loren Merritt <lorenm@u.washington.edu>
|
||||
;* Anton Mitrofanov <BugMaster@narod.ru>
|
||||
@ -67,6 +67,15 @@
|
||||
%endif
|
||||
%endif
|
||||
|
||||
%define FORMAT_ELF 0
|
||||
%ifidn __OUTPUT_FORMAT__,elf
|
||||
%define FORMAT_ELF 1
|
||||
%elifidn __OUTPUT_FORMAT__,elf32
|
||||
%define FORMAT_ELF 1
|
||||
%elifidn __OUTPUT_FORMAT__,elf64
|
||||
%define FORMAT_ELF 1
|
||||
%endif
|
||||
|
||||
%ifdef PREFIX
|
||||
%define mangle(x) _ %+ x
|
||||
%else
|
||||
@ -688,7 +697,7 @@ BRANCH_INSTR jz, je, jnz, jne, jl, jle, jnl, jnle, jg, jge, jng, jnge, ja, jae,
|
||||
CAT_XDEFINE cglobaled_, %2, 1
|
||||
%endif
|
||||
%xdefine current_function %2
|
||||
%ifidn __OUTPUT_FORMAT__,elf
|
||||
%if FORMAT_ELF
|
||||
global %2:function %%VISIBILITY
|
||||
%else
|
||||
global %2
|
||||
@ -714,14 +723,16 @@ BRANCH_INSTR jz, je, jnz, jne, jl, jle, jnl, jnle, jg, jge, jng, jnge, ja, jae,
|
||||
|
||||
; like cextern, but without the prefix
|
||||
%macro cextern_naked 1
|
||||
%xdefine %1 mangle(%1)
|
||||
%ifdef PREFIX
|
||||
%xdefine %1 mangle(%1)
|
||||
%endif
|
||||
CAT_XDEFINE cglobaled_, %1, 1
|
||||
extern %1
|
||||
%endmacro
|
||||
|
||||
%macro const 1-2+
|
||||
%xdefine %1 mangle(private_prefix %+ _ %+ %1)
|
||||
%ifidn __OUTPUT_FORMAT__,elf
|
||||
%if FORMAT_ELF
|
||||
global %1:data hidden
|
||||
%else
|
||||
global %1
|
||||
@ -729,10 +740,9 @@ BRANCH_INSTR jz, je, jnz, jne, jl, jle, jnl, jnle, jg, jge, jng, jnge, ja, jae,
|
||||
%1: %2
|
||||
%endmacro
|
||||
|
||||
; This is needed for ELF, otherwise the GNU linker assumes the stack is
|
||||
; executable by default.
|
||||
%ifidn __OUTPUT_FORMAT__,elf
|
||||
[section .note.GNU-stack noalloc noexec nowrite progbits]
|
||||
; This is needed for ELF, otherwise the GNU linker assumes the stack is executable by default.
|
||||
%if FORMAT_ELF
|
||||
[SECTION .note.GNU-stack noalloc noexec nowrite progbits]
|
||||
%endif
|
||||
|
||||
; cpuflags
|
||||
@ -751,8 +761,8 @@ BRANCH_INSTR jz, je, jnz, jne, jl, jle, jnl, jnle, jg, jge, jng, jnge, ja, jae,
|
||||
%assign cpuflags_avx (1<<11)| cpuflags_sse42
|
||||
%assign cpuflags_xop (1<<12)| cpuflags_avx
|
||||
%assign cpuflags_fma4 (1<<13)| cpuflags_avx
|
||||
%assign cpuflags_avx2 (1<<14)| cpuflags_avx
|
||||
%assign cpuflags_fma3 (1<<15)| cpuflags_avx
|
||||
%assign cpuflags_fma3 (1<<14)| cpuflags_avx
|
||||
%assign cpuflags_avx2 (1<<15)| cpuflags_fma3
|
||||
|
||||
%assign cpuflags_cache32 (1<<16)
|
||||
%assign cpuflags_cache64 (1<<17)
|
||||
@ -801,7 +811,7 @@ BRANCH_INSTR jz, je, jnz, jne, jl, jle, jnl, jnle, jg, jge, jng, jnge, ja, jae,
|
||||
%endif
|
||||
%endif
|
||||
|
||||
%if cpuflag(sse2)
|
||||
%if ARCH_X86_64 || cpuflag(sse2)
|
||||
CPUNOP amdnop
|
||||
%else
|
||||
CPUNOP basicnop
|
||||
|
Loading…
Reference in New Issue
Block a user