Home | History | Annotate | Download | only in include
      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_INCLUDE_ASM_DEFINES_H_
     12 #define WEBRTC_SYSTEM_WRAPPERS_INCLUDE_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_INCLUDE_ASM_DEFINES_H_
     67