kma@webrtc.org | 55cd78c | 2012-11-17 00:22:46 +0000 | [diff] [blame] | 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 | |
kma@webrtc.org | 7877b0f | 2012-12-12 23:22:13 +0000 | [diff] [blame] | 14 | #if defined(__linux__) && defined(__ELF__) |
| 15 | .section .note.GNU-stack,"",%progbits |
| 16 | #endif |
| 17 | |
kma@webrtc.org | 55cd78c | 2012-11-17 00:22:46 +0000 | [diff] [blame] | 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 | .endm |
| 24 | .macro DEFINE_FUNCTION name |
| 25 | _\name: |
| 26 | .endm |
kma@webrtc.org | 4782911 | 2013-01-24 01:37:33 +0000 | [diff] [blame] | 27 | .macro CALL_FUNCTION name |
| 28 | bl _\name |
| 29 | .endm |
kma@webrtc.org | 16d540e | 2013-01-25 03:18:05 +0000 | [diff] [blame] | 30 | .macro GLOBAL_LABEL name |
| 31 | .global _\name |
| 32 | .endm |
kma@webrtc.org | 55cd78c | 2012-11-17 00:22:46 +0000 | [diff] [blame] | 33 | #else |
| 34 | .macro GLOBAL_FUNCTION name |
| 35 | .global \name |
| 36 | .endm |
| 37 | .macro DEFINE_FUNCTION name |
| 38 | \name: |
| 39 | .endm |
kma@webrtc.org | 4782911 | 2013-01-24 01:37:33 +0000 | [diff] [blame] | 40 | .macro CALL_FUNCTION name |
| 41 | bl \name |
| 42 | .endm |
kma@webrtc.org | 16d540e | 2013-01-25 03:18:05 +0000 | [diff] [blame] | 43 | .macro GLOBAL_LABEL name |
| 44 | .global \name |
| 45 | .endm |
kma@webrtc.org | 55cd78c | 2012-11-17 00:22:46 +0000 | [diff] [blame] | 46 | #endif |
| 47 | |
kma@webrtc.org | a0936a6 | 2013-03-01 00:20:10 +0000 | [diff] [blame^] | 48 | // With Apple's clang compiler, for instructions ldrb, strh, etc., |
kma@webrtc.org | 2f9bd24 | 2013-02-23 04:16:59 +0000 | [diff] [blame] | 49 | // the condition code is after the width specifier. Here we define |
| 50 | // only the ones that are actually used in the assembly files. |
kma@webrtc.org | a0936a6 | 2013-03-01 00:20:10 +0000 | [diff] [blame^] | 51 | #if (defined __llvm__) && (defined __APPLE__) |
kma@webrtc.org | 2f9bd24 | 2013-02-23 04:16:59 +0000 | [diff] [blame] | 52 | .macro streqh reg1, reg2, num |
| 53 | strheq \reg1, \reg2, \num |
| 54 | .endm |
| 55 | #endif |
| 56 | |
kma@webrtc.org | 7877b0f | 2012-12-12 23:22:13 +0000 | [diff] [blame] | 57 | .text |
| 58 | |
kma@webrtc.org | 55cd78c | 2012-11-17 00:22:46 +0000 | [diff] [blame] | 59 | #endif // WEBRTC_SYSTEM_WRAPPERS_INTERFACE_COMPILE_ASSERT_H_ |