BitMagic-C++
Macros
bmdef.h File Reference

Definitions(internal) More...

#include <climits>
#include <stdint.h>
#include <cassert>
Include dependency graph for bmdef.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define BM_x86
 
#define BMNOEXCEPT   noexcept
 
#define BMNOEXCEPT2
 
#define BMNOEXCEPT2
 
#define BM_ASSERT   assert
 
#define FULL_BLOCK_REAL_ADDR   bm::all_set<true>::_block._p
 
#define FULL_BLOCK_FAKE_ADDR   bm::all_set<true>::_block._p_fullp
 
#define FULL_SUB_BLOCK_REAL_ADDR   bm::all_set<true>::_block._s
 
#define BLOCK_ADDR_SAN(addr)   (addr == FULL_BLOCK_FAKE_ADDR) ? FULL_BLOCK_REAL_ADDR : addr
 
#define IS_VALID_ADDR(addr)   bm::all_set<true>::is_valid_block_addr(addr)
 
#define IS_FULL_BLOCK(addr)   bm::all_set<true>::is_full_block(addr)
 
#define IS_EMPTY_BLOCK(addr)   bool(addr == 0)
 
#define BM_BLOCK_TYPE(addr)   bm::all_set<true>::block_type(addr)
 
#define BMPTR_SETBIT0(ptr)   ( ((bm::id64_t)ptr) | 1 )
 
#define BMPTR_CLEARBIT0(ptr)   ( ((bm::id64_t)ptr) & ~(bm::id64_t)1 )
 
#define BMPTR_TESTBIT0(ptr)   ( ((bm::id64_t)ptr) & 1 )
 
#define BMGAP_PTR(ptr)   ((bm::gap_word_t*)BMPTR_CLEARBIT0(ptr))
 
#define BMSET_PTRGAP(ptr)   ptr = (bm::word_t*)BMPTR_SETBIT0(ptr)
 
#define BM_IS_GAP(ptr)   (BMPTR_TESTBIT0(ptr))
 
#define BMRESTRICT
 
#define BMFORCEINLINE   inline
 
#define BM64_SSE4
 
#define BM_SET_MMX_GUARD
 
#define BM_ALIGN16
 
#define BM_ALIGN16ATTR   __attribute__((aligned(16)))
 
#define BM_ALIGN32
 
#define BM_ALIGN32ATTR   __attribute__((aligned(32)))
 
#define BM_ALIGN64
 
#define BM_ALIGN64ATTR   __attribute__((aligned(64)))
 
#define BM_VECT_ALIGN   BM_ALIGN32
 
#define BM_VECT_ALIGN_ATTR   BM_ALIGN32ATTR
 
#define BM_ASSERT_THROW(x, xerrcode)
 
#define __has_cpp_attribute(x)   0
 
#define __has_attribute(x)   0
 
#define BM_FALLTHROUGH
 

Detailed Description

Definitions(internal)

Definition in file bmdef.h.