mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-01-08 13:22:53 +02:00
Merge commit 'd633d12b2cc999cee3ac25bf9a810fe7ff03726d'
* commit 'd633d12b2cc999cee3ac25bf9a810fe7ff03726d': x86inc: Add cvisible macro for C functions with public prefix Merged-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
commit
b45e0c2573
@ -38,6 +38,10 @@
|
|||||||
%define private_prefix x264
|
%define private_prefix x264
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
%ifndef public_prefix
|
||||||
|
%define public_prefix private_prefix
|
||||||
|
%endif
|
||||||
|
|
||||||
%define WIN64 0
|
%define WIN64 0
|
||||||
%define UNIX64 0
|
%define UNIX64 0
|
||||||
%if ARCH_X86_64
|
%if ARCH_X86_64
|
||||||
@ -643,33 +647,43 @@ DECLARE_ARG 7, 8, 9, 10, 11, 12, 13, 14
|
|||||||
; Applies any symbol mangling needed for C linkage, and sets up a define such that
|
; Applies any symbol mangling needed for C linkage, and sets up a define such that
|
||||||
; subsequent uses of the function name automatically refer to the mangled version.
|
; subsequent uses of the function name automatically refer to the mangled version.
|
||||||
; Appends cpuflags to the function name if cpuflags has been specified.
|
; Appends cpuflags to the function name if cpuflags has been specified.
|
||||||
|
; The "" empty default parameter is a workaround for nasm, which fails if SUFFIX
|
||||||
|
; is empty and we call cglobal_internal with just %1 %+ SUFFIX (without %2).
|
||||||
%macro cglobal 1-2+ "" ; name, [PROLOGUE args]
|
%macro cglobal 1-2+ "" ; name, [PROLOGUE args]
|
||||||
; the "" is a workaround for nasm, which fails if SUFFIX is empty
|
cglobal_internal 1, %1 %+ SUFFIX, %2
|
||||||
; and we call cglobal_internal with just %1 %+ SUFFIX (without %2)
|
|
||||||
cglobal_internal %1 %+ SUFFIX, %2
|
|
||||||
%endmacro
|
%endmacro
|
||||||
%macro cglobal_internal 1-2+
|
%macro cvisible 1-2+ "" ; name, [PROLOGUE args]
|
||||||
%ifndef cglobaled_%1
|
cglobal_internal 0, %1 %+ SUFFIX, %2
|
||||||
%xdefine %1 mangle(private_prefix %+ _ %+ %1)
|
%endmacro
|
||||||
%xdefine %1.skip_prologue %1 %+ .skip_prologue
|
%macro cglobal_internal 2-3+
|
||||||
CAT_XDEFINE cglobaled_, %1, 1
|
%if %1
|
||||||
%endif
|
%xdefine %%FUNCTION_PREFIX private_prefix
|
||||||
%xdefine current_function %1
|
%xdefine %%VISIBILITY hidden
|
||||||
%ifidn __OUTPUT_FORMAT__,elf
|
|
||||||
global %1:function hidden
|
|
||||||
%else
|
%else
|
||||||
global %1
|
%xdefine %%FUNCTION_PREFIX public_prefix
|
||||||
|
%xdefine %%VISIBILITY
|
||||||
|
%endif
|
||||||
|
%ifndef cglobaled_%2
|
||||||
|
%xdefine %2 mangle(%%FUNCTION_PREFIX %+ _ %+ %2)
|
||||||
|
%xdefine %2.skip_prologue %2 %+ .skip_prologue
|
||||||
|
CAT_XDEFINE cglobaled_, %2, 1
|
||||||
|
%endif
|
||||||
|
%xdefine current_function %2
|
||||||
|
%ifidn __OUTPUT_FORMAT__,elf
|
||||||
|
global %2:function %%VISIBILITY
|
||||||
|
%else
|
||||||
|
global %2
|
||||||
%endif
|
%endif
|
||||||
align function_align
|
align function_align
|
||||||
%1:
|
%2:
|
||||||
RESET_MM_PERMUTATION ; not really needed, but makes disassembly somewhat nicer
|
RESET_MM_PERMUTATION ; not really needed, but makes disassembly somewhat nicer
|
||||||
%xdefine rstk rsp
|
%xdefine rstk rsp
|
||||||
%assign stack_offset 0
|
%assign stack_offset 0
|
||||||
%assign stack_size 0
|
%assign stack_size 0
|
||||||
%assign stack_size_padded 0
|
%assign stack_size_padded 0
|
||||||
%assign xmm_regs_used 0
|
%assign xmm_regs_used 0
|
||||||
%ifnidn %2, ""
|
%ifnidn %3, ""
|
||||||
PROLOGUE %2
|
PROLOGUE %3
|
||||||
%endif
|
%endif
|
||||||
%endmacro
|
%endmacro
|
||||||
|
|
||||||
|
@ -24,6 +24,7 @@
|
|||||||
;******************************************************************************
|
;******************************************************************************
|
||||||
|
|
||||||
%define private_prefix ff
|
%define private_prefix ff
|
||||||
|
%define public_prefix avpriv
|
||||||
%define cpuflags_mmxext cpuflags_mmx2
|
%define cpuflags_mmxext cpuflags_mmx2
|
||||||
|
|
||||||
%include "libavutil/x86/x86inc.asm"
|
%include "libavutil/x86/x86inc.asm"
|
||||||
|
Loading…
Reference in New Issue
Block a user