OLD | NEW |
| (Empty) |
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 | |
34 global mangle(%1) | |
35 | |
36 ; Windows needs an additional export declaration. | |
37 %ifidn __OUTPUT_FORMAT__,win32 | |
38 export mangle(%1) | |
39 %elifidn __OUTPUT_FORMAT__,win64 | |
40 export mangle(%1) | |
41 %endif | |
42 | |
43 %else | |
44 global mangle(%1) PRIVATE | |
45 %endif | |
46 %endmacro | |
47 | |
48 %endif ; MEDIA_BASE_SIMD_MEDIA_EXPORT_ASM_ | |
OLD | NEW |