| /* | 
 |  *  Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. | 
 |  * | 
 |  *  Use of this source code is governed by a BSD-style license | 
 |  *  that can be found in the LICENSE file in the root of the source | 
 |  *  tree. An additional intellectual property rights grant can be found | 
 |  *  in the file PATENTS.  All contributing project authors may | 
 |  *  be found in the AUTHORS file in the root of the source tree. | 
 |  */ | 
 |  | 
 | #ifndef WEBRTC_SYSTEM_WRAPPERS_INCLUDE_ASM_DEFINES_H_ | 
 | #define WEBRTC_SYSTEM_WRAPPERS_INCLUDE_ASM_DEFINES_H_ | 
 |  | 
 | #if defined(__linux__) && defined(__ELF__) | 
 | .section .note.GNU-stack,"",%progbits | 
 | #endif | 
 |  | 
 | // Define the macros used in ARM assembly code, so that for Mac or iOS builds | 
 | // we add leading underscores for the function names. | 
 | #ifdef __APPLE__ | 
 | .macro GLOBAL_FUNCTION name | 
 | .global _\name | 
 | .private_extern _\name | 
 | .endm | 
 | .macro DEFINE_FUNCTION name | 
 | _\name: | 
 | .endm | 
 | .macro CALL_FUNCTION name | 
 | bl _\name | 
 | .endm | 
 | .macro GLOBAL_LABEL name | 
 | .global _\name | 
 | .private_extern _\name | 
 | .endm | 
 | #else | 
 | .macro GLOBAL_FUNCTION name | 
 | .global \name | 
 | .hidden \name | 
 | .endm | 
 | .macro DEFINE_FUNCTION name | 
 | #if defined(__linux__) && defined(__ELF__) | 
 | .type \name,%function | 
 | #endif | 
 | \name: | 
 | .endm | 
 | .macro CALL_FUNCTION name | 
 | bl \name | 
 | .endm | 
 | .macro GLOBAL_LABEL name | 
 | .global \name | 
 | .hidden \name | 
 | .endm | 
 | #endif | 
 |  | 
 | // With Apple's clang compiler, for instructions ldrb, strh, etc., | 
 | // the condition code is after the width specifier. Here we define | 
 | // only the ones that are actually used in the assembly files. | 
 | #if (defined __llvm__) && (defined __APPLE__) | 
 | .macro streqh reg1, reg2, num | 
 | strheq \reg1, \reg2, \num | 
 | .endm | 
 | #endif | 
 |  | 
 | .text | 
 |  | 
 | #endif  // WEBRTC_SYSTEM_WRAPPERS_INCLUDE_ASM_DEFINES_H_ |