OLD | NEW |
| (Empty) |
1 /* | |
2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. | |
3 * | |
4 * Use of this source code is governed by a BSD-style license | |
5 * that can be found in the LICENSE file in the root of the source | |
6 * tree. An additional intellectual property rights grant can be found | |
7 * in the file PATENTS. All contributing project authors may | |
8 * be found in the AUTHORS file in the root of the source tree. | |
9 */ | |
10 | |
11 #ifndef WEBRTC_SYSTEM_WRAPPERS_INTERFACE_ASM_DEFINES_H_ | |
12 #define WEBRTC_SYSTEM_WRAPPERS_INTERFACE_ASM_DEFINES_H_ | |
13 | |
14 #if defined(__linux__) && defined(__ELF__) | |
15 .section .note.GNU-stack,"",%progbits | |
16 #endif | |
17 | |
18 // Define the macros used in ARM assembly code, so that for Mac or iOS builds | |
19 // we add leading underscores for the function names. | |
20 #ifdef __APPLE__ | |
21 .macro GLOBAL_FUNCTION name | |
22 .global _\name | |
23 .private_extern _\name | |
24 .endm | |
25 .macro DEFINE_FUNCTION name | |
26 _\name: | |
27 .endm | |
28 .macro CALL_FUNCTION name | |
29 bl _\name | |
30 .endm | |
31 .macro GLOBAL_LABEL name | |
32 .global _\name | |
33 .private_extern _\name | |
34 .endm | |
35 #else | |
36 .macro GLOBAL_FUNCTION name | |
37 .global \name | |
38 .hidden \name | |
39 .endm | |
40 .macro DEFINE_FUNCTION name | |
41 #if defined(__linux__) && defined(__ELF__) | |
42 .type \name,%function | |
43 #endif | |
44 \name: | |
45 .endm | |
46 .macro CALL_FUNCTION name | |
47 bl \name | |
48 .endm | |
49 .macro GLOBAL_LABEL name | |
50 .global \name | |
51 .hidden \name | |
52 .endm | |
53 #endif | |
54 | |
55 // With Apple's clang compiler, for instructions ldrb, strh, etc., | |
56 // the condition code is after the width specifier. Here we define | |
57 // only the ones that are actually used in the assembly files. | |
58 #if (defined __llvm__) && (defined __APPLE__) | |
59 .macro streqh reg1, reg2, num | |
60 strheq \reg1, \reg2, \num | |
61 .endm | |
62 #endif | |
63 | |
64 .text | |
65 | |
66 #endif // WEBRTC_SYSTEM_WRAPPERS_INTERFACE_ASM_DEFINES_H_ | |
OLD | NEW |