1; Copyright 2013 The Chromium Authors. All rights reserved. 2; Use of this source code is governed by a BSD-style license that can be 3; found in the LICENSE file. 4; 5; A set of helper macros for controlling symbol visibility. 6; 7 8%ifndef MEDIA_BASE_SIMD_MEDIA_EXPORT_ASM_ 9%define MEDIA_BASE_SIMD_MEDIA_EXPORT_ASM_ 10 11; Necessary for the mangle() macro. 12%include "third_party/x86inc/x86inc.asm" 13 14; 15; PRIVATE 16; A flag representing the specified symbol is a private symbol. This define adds 17; a hidden flag on Linux and a private_extern flag on Mac. (We can use this 18; private_extern flag only on the latest yasm.) 19; 20%ifdef MACHO 21%define PRIVATE :private_extern 22%elifdef ELF 23%define PRIVATE :hidden 24%else 25%define PRIVATE 26%endif 27 28; 29; EXPORT %1 30; Designates a symbol as PRIVATE if EXPORT_SYMBOLS is not set. 31; 32%macro EXPORT 1 33%ifdef EXPORT_SYMBOLS 34global mangle(%1) 35 36; Windows needs an additional export declaration. 37%ifidn __OUTPUT_FORMAT__,win32 38export mangle(%1) 39%elifidn __OUTPUT_FORMAT__,win64 40export mangle(%1) 41%endif 42 43%else 44global mangle(%1) PRIVATE 45%endif 46%endmacro 47 48%endif ; MEDIA_BASE_SIMD_MEDIA_EXPORT_ASM_ 49