18 #if !defined(__TBB_machine_H) || defined(__TBB_machine_sunos_sparc_H) 19 #error Do not #include this internal file directly; use public TBB headers instead. 22 #define __TBB_machine_sunos_sparc_H 27 #define __TBB_WORDSIZE 8 30 #define __TBB_ENDIANNESS __TBB_ENDIAN_BIG 34 #define __TBB_compiler_fence() __asm__ __volatile__ ("": : :"memory") 35 #define __TBB_control_consistency_helper() __TBB_compiler_fence() 36 #define __TBB_acquire_consistency_helper() __TBB_compiler_fence() 37 #define __TBB_release_consistency_helper() __TBB_compiler_fence() 38 #define __TBB_full_memory_fence() __asm__ __volatile__("membar #LoadLoad|#LoadStore|#StoreStore|#StoreLoad": : : "memory") 55 :
"=m"(*(int32_t *)ptr),
"=r"(result)
56 :
"m"(*(int32_t *)ptr),
"1"(
value),
"r"(comparand),
"r"(ptr)
72 :
"=m"(*(int64_t *)ptr),
"=r"(result)
73 :
"m"(*(int64_t *)ptr),
"1"(
value),
"r"(comparand),
"r"(ptr)
90 __asm__ __volatile__ (
91 "0:\t add\t %3, %4, %0\n" 92 "\t cas\t [%2], %3, %0\n" 94 "\t bne,a,pn\t %%icc, 0b\n" 96 :
"=&r"(result),
"=m"(*(int32_t *)ptr)
97 :
"r"(ptr),
"r"(*(int32_t *)ptr),
"r"(addend),
"m"(*(int32_t *)ptr)
110 __asm__ __volatile__ (
111 "0:\t add\t %3, %4, %0\n" 112 "\t casx\t [%2], %3, %0\n" 114 "\t bne,a,pn\t %%xcc, 0b\n" 116 :
"=&r"(result),
"=m"(*(int64_t *)ptr)
117 :
"r"(ptr),
"r"(*(int64_t *)ptr),
"r"(addend),
"m"(*(int64_t *)ptr)
137 __asm__ (
"popc %1, %0" :
"=r"(
count) :
"r"(x) );
144 __asm__ __volatile__ (
145 "0:\t or\t %2, %3, %%g1\n" 146 "\t casx\t [%1], %2, %%g1\n" 147 "\t cmp\t %2, %%g1\n" 148 "\t bne,a,pn\t %%xcc, 0b\n" 150 :
"=m"(*(int64_t *)ptr)
151 :
"r"(ptr),
"r"(*(int64_t *)ptr),
"r"(
value),
"m"(*(int64_t *)ptr)
152 :
"ccr",
"g1",
"memory");
156 __asm__ __volatile__ (
157 "0:\t and\t %2, %3, %%g1\n" 158 "\t casx\t [%1], %2, %%g1\n" 159 "\t cmp\t %2, %%g1\n" 160 "\t bne,a,pn\t %%xcc, 0b\n" 162 :
"=m"(*(int64_t *)ptr)
163 :
"r"(ptr),
"r"(*(int64_t *)ptr),
"r"(
value),
"m"(*(int64_t *)ptr)
164 :
"ccr",
"g1",
"memory");
176 unsigned char result;
177 __asm__ __volatile__ (
178 "ldstub\t [%2], %0\n" 179 :
"=r"(result),
"=m"(flag)
180 :
"r"(&flag),
"m"(flag)
185 #define __TBB_USE_GENERIC_PART_WORD_CAS 1 186 #define __TBB_USE_GENERIC_PART_WORD_FETCH_ADD 1 187 #define __TBB_USE_GENERIC_FETCH_STORE 1 188 #define __TBB_USE_GENERIC_HALF_FENCED_LOAD_STORE 1 189 #define __TBB_USE_GENERIC_RELAXED_LOAD_STORE 1 190 #define __TBB_USE_GENERIC_SEQUENTIAL_CONSISTENCY_LOAD_STORE 1 192 #define __TBB_AtomicOR(P,V) __TBB_machine_or(P,V) 193 #define __TBB_AtomicAND(P,V) __TBB_machine_and(P,V) 196 #define __TBB_Pause(V) __TBB_machine_pause(V) 197 #define __TBB_Log2(V) __TBB_machine_lg(V) 199 #define __TBB_TryLockByte(P) __TBB_machine_trylockbyte(P) static int64_t __TBB_machine_fetchadd8(volatile void *ptr, int64_t addend)
static void __TBB_machine_pause(int32_t delay)
static int32_t __TBB_machine_cmpswp4(volatile void *ptr, int32_t value, int32_t comparand)
static void __TBB_machine_or(volatile void *ptr, uint64_t value)
static void __TBB_machine_and(volatile void *ptr, uint64_t value)
static int64_t __TBB_machine_cmpswp8(volatile void *ptr, int64_t value, int64_t comparand)
#define __TBB_ASSERT(predicate, comment)
No-op version of __TBB_ASSERT.
void const char const char int ITT_FORMAT __itt_group_sync x void const char ITT_FORMAT __itt_group_sync s void ITT_FORMAT __itt_group_sync p void ITT_FORMAT p void ITT_FORMAT p no args __itt_suppress_mode_t unsigned int void size_t ITT_FORMAT d void ITT_FORMAT p void ITT_FORMAT p __itt_model_site __itt_model_site_instance ITT_FORMAT p __itt_model_task __itt_model_task_instance ITT_FORMAT p void ITT_FORMAT p void ITT_FORMAT p void size_t ITT_FORMAT d void ITT_FORMAT p const wchar_t ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s no args void ITT_FORMAT p size_t count
static int64_t __TBB_machine_lg(uint64_t x)
void const char const char int ITT_FORMAT __itt_group_sync x void const char ITT_FORMAT __itt_group_sync s void ITT_FORMAT __itt_group_sync p void ITT_FORMAT p void ITT_FORMAT p no args __itt_suppress_mode_t unsigned int void size_t ITT_FORMAT d void ITT_FORMAT p void ITT_FORMAT p __itt_model_site __itt_model_site_instance ITT_FORMAT p __itt_model_task __itt_model_task_instance ITT_FORMAT p void ITT_FORMAT p void ITT_FORMAT p void size_t ITT_FORMAT d void ITT_FORMAT p const wchar_t ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s no args void ITT_FORMAT p size_t ITT_FORMAT d no args const wchar_t const wchar_t ITT_FORMAT s __itt_heap_function void size_t int ITT_FORMAT d __itt_heap_function void ITT_FORMAT p __itt_heap_function void void size_t int ITT_FORMAT d no args no args unsigned int ITT_FORMAT u const __itt_domain __itt_id ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain __itt_id ITT_FORMAT p const __itt_domain __itt_id __itt_timestamp __itt_timestamp ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain ITT_FORMAT p const __itt_domain __itt_string_handle unsigned long long value
static bool __TBB_machine_trylockbyte(unsigned char &flag)
static int32_t __TBB_machine_fetchadd4(volatile void *ptr, int32_t addend)