Intel(R) Threading Building Blocks Doxygen Documentation
version 4.2.3
|
Go to the source code of this file.
Macros | |
#define | __TBB_WORDSIZE 4 |
#define | __TBB_ENDIANNESS __TBB_ENDIAN_LITTLE |
#define | __TBB_compiler_fence() __asm__ __volatile__("": : :"memory") |
#define | __TBB_control_consistency_helper() __TBB_compiler_fence() |
#define | __TBB_acquire_consistency_helper() __TBB_compiler_fence() |
#define | __TBB_release_consistency_helper() __TBB_compiler_fence() |
#define | __TBB_full_memory_fence() __asm__ __volatile__("mfence": : :"memory") |
#define | __TBB_VOLATILE volatile |
#define | __TBB_MACHINE_DEFINE_ATOMICS(S, T, X, R) |
#define | __TBB_IA32_CAS8_NOINLINE |
#define | __TBB_fildq "fildq" |
#define | __TBB_fistpq "fistpq" |
#define | __TBB_AtomicOR(P, V) __TBB_machine_or(P,V) |
#define | __TBB_AtomicAND(P, V) __TBB_machine_and(P,V) |
#define | __TBB_USE_GENERIC_DWORD_FETCH_ADD 1 |
#define | __TBB_USE_GENERIC_DWORD_FETCH_STORE 1 |
#define | __TBB_USE_FETCHSTORE_AS_FULL_FENCED_STORE 1 |
#define | __TBB_USE_GENERIC_HALF_FENCED_LOAD_STORE 1 |
#define | __TBB_USE_GENERIC_RELAXED_LOAD_STORE 1 |
#define | __TBB_USE_GENERIC_SEQUENTIAL_CONSISTENCY_LOAD_STORE 1 |
Functions | |
static __TBB_IA32_CAS8_NOINLINE int64_t | __TBB_machine_cmpswp8 (volatile void *ptr, int64_t value, int64_t comparand) |
static void | __TBB_machine_or (volatile void *ptr, uint32_t addend) |
static void | __TBB_machine_and (volatile void *ptr, uint32_t addend) |
static int64_t | __TBB_machine_aligned_load8 (const volatile void *ptr) |
static void | __TBB_machine_aligned_store8 (volatile void *ptr, int64_t value) |
static int64_t | __TBB_machine_load8 (const volatile void *ptr) |
void | __TBB_machine_store8_slow (volatile void *ptr, int64_t value) |
Handles misaligned 8-byte store. More... | |
void | __TBB_machine_store8_slow_perf_warning (volatile void *ptr) |
static void | __TBB_machine_store8 (volatile void *ptr, int64_t value) |
#define __TBB_acquire_consistency_helper | ( | ) | __TBB_compiler_fence() |
Definition at line 31 of file linux_ia32.h.
#define __TBB_AtomicAND | ( | P, | |
V | |||
) | __TBB_machine_and(P,V) |
Definition at line 220 of file linux_ia32.h.
#define __TBB_AtomicOR | ( | P, | |
V | |||
) | __TBB_machine_or(P,V) |
Definition at line 219 of file linux_ia32.h.
#define __TBB_compiler_fence | ( | ) | __asm__ __volatile__("": : :"memory") |
Definition at line 29 of file linux_ia32.h.
#define __TBB_control_consistency_helper | ( | ) | __TBB_compiler_fence() |
Definition at line 30 of file linux_ia32.h.
#define __TBB_ENDIANNESS __TBB_ENDIAN_LITTLE |
Definition at line 27 of file linux_ia32.h.
#define __TBB_fildq "fildq" |
Definition at line 165 of file linux_ia32.h.
#define __TBB_fistpq "fistpq" |
Definition at line 166 of file linux_ia32.h.
#define __TBB_full_memory_fence | ( | ) | __asm__ __volatile__("mfence": : :"memory") |
Definition at line 33 of file linux_ia32.h.
#define __TBB_IA32_CAS8_NOINLINE |
Definition at line 86 of file linux_ia32.h.
#define __TBB_MACHINE_DEFINE_ATOMICS | ( | S, | |
T, | |||
X, | |||
R | |||
) |
Definition at line 41 of file linux_ia32.h.
#define __TBB_release_consistency_helper | ( | ) | __TBB_compiler_fence() |
Definition at line 32 of file linux_ia32.h.
#define __TBB_USE_FETCHSTORE_AS_FULL_FENCED_STORE 1 |
Definition at line 224 of file linux_ia32.h.
#define __TBB_USE_GENERIC_DWORD_FETCH_ADD 1 |
Definition at line 222 of file linux_ia32.h.
#define __TBB_USE_GENERIC_DWORD_FETCH_STORE 1 |
Definition at line 223 of file linux_ia32.h.
#define __TBB_USE_GENERIC_HALF_FENCED_LOAD_STORE 1 |
Definition at line 225 of file linux_ia32.h.
#define __TBB_USE_GENERIC_RELAXED_LOAD_STORE 1 |
Definition at line 226 of file linux_ia32.h.
#define __TBB_USE_GENERIC_SEQUENTIAL_CONSISTENCY_LOAD_STORE 1 |
Definition at line 227 of file linux_ia32.h.
#define __TBB_VOLATILE volatile |
Definition at line 38 of file linux_ia32.h.
#define __TBB_WORDSIZE 4 |
Definition at line 26 of file linux_ia32.h.
|
inlinestatic |
Definition at line 169 of file linux_ia32.h.
References __TBB_ASSERT, __TBB_fildq, __TBB_fistpq, __TBB_VOLATILE, and tbb::internal::is_aligned().
Referenced by __TBB_machine_load8().
Definition at line 177 of file linux_ia32.h.
References __TBB_ASSERT, __TBB_fildq, __TBB_fistpq, __TBB_VOLATILE, tbb::internal::is_aligned(), and value.
Referenced by __TBB_machine_store8().
Definition at line 153 of file linux_ia32.h.
References __TBB_VOLATILE.
|
inlinestatic |
Definition at line 89 of file linux_ia32.h.
References __TBB_VOLATILE, and value.
Referenced by __TBB_machine_load8().
|
inlinestatic |
Definition at line 184 of file linux_ia32.h.
References __TBB_machine_aligned_load8(), __TBB_machine_cmpswp8(), and tbb::internal::is_aligned().
Definition at line 149 of file linux_ia32.h.
References __TBB_VOLATILE.
Definition at line 202 of file linux_ia32.h.
References __TBB_machine_aligned_store8(), __TBB_machine_store8_slow(), __TBB_machine_store8_slow_perf_warning(), tbb::internal::is_aligned(), and value.
Handles misaligned 8-byte store.
Defined in tbb_misc.cpp
Referenced by __TBB_machine_store8().