rc_platform.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00033 #ifndef RC_PLATFORM_H
00034 #define RC_PLATFORM_H
00035
00036
00037 #if HAVE_CONFIG_H
00038 #include <config.h>
00039 #endif
00040
00041 #include <stdint.h>
00042 #include <limits.h>
00043
00044
00045
00046
00047
00048
00049
00050
00054 #define RC_GCC_VERSION (1000*__GNUC__ + __GNUC_MINOR__)
00055
00059 #ifdef WORDS_BIGENDIAN
00060 #define RC_BIG_ENDIAN 1
00061 #else
00062 #define RC_LITTLE_ENDIAN 1
00063 #endif
00064
00069 #ifdef RAPP_FORCE_SIZE
00070 #define RC_NATIVE_SIZE RAPP_FORCE_SIZE
00071
00072 #else
00073
00074
00075 #define RC_NATIVE_SIZE RC_COMPUTED_NATIVE_SIZE
00076
00077 #endif
00078
00084 #if defined __SSE2__ || defined __VEC__ || defined __ALTIVEC__ || \
00085 defined __SSSE3__ || defined __VADMX2__
00086 #define RC_ALIGNMENT 16
00087
00088 #elif defined __MMX__ || defined __SSE__ || defined __VADMX__ || \
00089 defined __mips_loongson_vector_rev || defined __ARM_NEON__ || \
00090 defined RC_VEC_BACKEND_VIS || \
00091 RC_NATIVE_SIZE == 8
00092 #define RC_ALIGNMENT 8
00093
00094 #else
00095 #define RC_ALIGNMENT 4
00096 #endif
00097
00101 #if defined __GNUC__ && RC_GCC_VERSION > 3001
00102 #define RC_NOINLINE __attribute__((noinline))
00103 #else
00104 #define RC_NOINLINE
00105 #endif
00106
00107
00108
00109
00110
00111
00112
00113
00118 #if defined __GNUC__ && RC_GCC_VERSION > 2095
00119 #define RC_LIKELY(expr) __builtin_expect((expr) != 0, 1)
00120 #define RC_UNLIKELY(expr) __builtin_expect((expr), 0)
00121 #else
00122 #define RC_LIKELY(expr) (expr)
00123 #define RC_UNLIKELY(expr) (expr)
00124 #endif
00125
00126 #endif