Compiler abstraction layer. More...
#include <stdint.h>Go to the source code of this file.
Defines | |
Function and Data Attributes | |
| #define | __noreturn |
| The function does not return. | |
| #define | __must_check |
| The return value must be checked. | |
| #define | __used |
| Mark a function or data object as being used. | |
| #define | __nonnull(...) |
| Define non-null function attributes. | |
| #define | __printf_format(fmt_index, first_arg_index) |
| The function takes a printf-like format string. | |
| #define | compiler_align_data(byte_alignment) |
| Align data variables to a give byte value. | |
Optimization Control | |
| #define | likely(exp) (exp) |
| The expression exp is likely to be true. | |
| #define | unlikely(exp) (exp) |
| The expression exp is unlikely to be true. | |
| #define | barrier() do { } while (0) |
| Optimization barrier. | |
| #define | is_constant(exp) (0) |
| Determine if an expression evaluates to a constant value. | |
Top-level Directives | |
| #define | COMPILER_PRAGMA(arg) _Pragma(#arg) |
| Emit the compiler pragma arg. | |
| #define | COMPILER_PACK_SET(alignment) COMPILER_PRAGMA(pack(alignment)) |
| Set maximum alignment for subsequent struct and union definitions to alignment. | |
| #define | COMPILER_PACK_RESET() COMPILER_PRAGMA(pack()) |
| Set default alignment for subsequent struct and union definitions. | |
| #define | ERROR_FUNC(name, msg) extern int name(void) |
| Fail compilation if function call isn't eliminated. | |
Bit Operations | |
These functions are not meant to be called directly. Please see Bit Operations instead. | |
| #define | compiler_ctz(x) compiler_priv_demux_size(sizeof(x), compiler_priv_ctz, (x)) |
| Count Trailing Zeroes. | |
| #define | compiler_clz(x) compiler_priv_demux_size(sizeof(x), compiler_priv_clz, (x)) |
| Count Leading Zeroes. | |
| #define | compiler_brev(x) compiler_priv_demux_size(sizeof(x), compiler_priv_brev, (x)) |
| Reverse the order of the bits in x. | |
| static int_fast8_t | compiler_priv_ctz8 (uint8_t x) |
| static int_fast8_t | compiler_priv_ctz16 (uint16_t x) |
| static int_fast8_t | compiler_priv_ctz32 (uint32_t x) |
| static int_fast8_t | compiler_priv_clz8 (uint8_t x) |
| static int_fast8_t | compiler_priv_clz16 (uint16_t x) |
| static int_fast8_t | compiler_priv_clz32 (uint32_t x) |
| static uint8_t | compiler_priv_brev8 (uint8_t x) |
| static uint16_t | compiler_priv_brev16 (uint16_t x) |
| static uint32_t | compiler_priv_brev32 (uint32_t x) |
| static int8_t | compiler_min_s8 (int8_t a, int8_t b) |
| static int16_t | compiler_min_s16 (int16_t a, int16_t b) |
| static int32_t | compiler_min_s32 (int32_t a, int32_t b) |
| static int64_t | compiler_min_s64 (int64_t a, int64_t b) |
| static uint8_t | compiler_min_u8 (uint8_t a, uint8_t b) |
| static uint16_t | compiler_min_u16 (uint16_t a, uint16_t b) |
| static uint32_t | compiler_min_u32 (uint32_t a, uint32_t b) |
| static uint64_t | compiler_min_u64 (uint64_t a, uint64_t b) |
| static int8_t | compiler_max_s8 (int8_t a, int8_t b) |
| static int16_t | compiler_max_s16 (int16_t a, int16_t b) |
| static int32_t | compiler_max_s32 (int32_t a, int32_t b) |
| static int64_t | compiler_max_s64 (int64_t a, int64_t b) |
| static uint8_t | compiler_max_u8 (uint8_t a, uint8_t b) |
| static uint16_t | compiler_max_u16 (uint16_t a, uint16_t b) |
| static uint32_t | compiler_max_u32 (uint32_t a, uint32_t b) |
| static uint64_t | compiler_max_u64 (uint64_t a, uint64_t b) |
Compiler abstraction layer.
Copyright (C) 2009 Atmel Corporation. All rights reserved.
Definition in file compiler.h.
1.6.3