mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-28 20:53:54 +02:00
x86inc: Various minor backports from x264
Reviewed-by: "Ronald S. Bultje" <rsbultje@gmail.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
parent
f151fbd9e5
commit
127203ba5a
@ -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>
|
||||
@ -56,6 +56,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
|
||||
@ -678,7 +687,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
|
||||
@ -704,14 +713,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
|
||||
@ -719,10 +730,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
|
||||
|
||||
; Overrides the default .text section.
|
||||
@ -745,8 +755,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)
|
||||
@ -795,7 +805,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