Home | History | Annotate | Download | only in lib
      1 /* ===-- int_lib.h - configuration header for compiler-rt  -----------------===
      2  *
      3  *                     The LLVM Compiler Infrastructure
      4  *
      5  * This file is dual licensed under the MIT and the University of Illinois Open
      6  * Source Licenses. See LICENSE.TXT for details.
      7  *
      8  * ===----------------------------------------------------------------------===
      9  *
     10  * This file is a configuration header for compiler-rt.
     11  * This file is not part of the interface of this library.
     12  *
     13  * ===----------------------------------------------------------------------===
     14  */
     15 
     16 #ifndef INT_LIB_H
     17 #define INT_LIB_H
     18 
     19 /* Assumption: Signed integral is 2's complement. */
     20 /* Assumption: Right shift of signed negative is arithmetic shift. */
     21 /* Assumption: Endianness is little or big (not mixed). */
     22 
     23 /* ABI macro definitions */
     24 
     25 #if __ARM_EABI__
     26 # define ARM_EABI_FNALIAS(aeabi_name, name)         \
     27   void __aeabi_##aeabi_name() __attribute__((alias("__" #name)));
     28 # define COMPILER_RT_ABI __attribute__((pcs("aapcs")))
     29 #else
     30 # define ARM_EABI_FNALIAS(aeabi_name, name)
     31 # define COMPILER_RT_ABI
     32 #endif
     33 
     34 /* Include the standard compiler builtin headers we use functionality from. */
     35 #include <limits.h>
     36 #include <stdint.h>
     37 #include <stdbool.h>
     38 #include <float.h>
     39 
     40 /* Include the commonly used internal type definitions. */
     41 #include "int_types.h"
     42 
     43 /* Include internal utility function declarations. */
     44 #include "int_util.h"
     45 
     46 #endif /* INT_LIB_H */
     47