18 #if (KMP_ARCH_X86 || KMP_ARCH_X86_64)
24 __kmp_test_then_or8(
volatile kmp_int8 *p, kmp_int8 d )
26 kmp_int8 old_value, new_value;
28 old_value = TCR_1( *p );
29 new_value = old_value | d;
31 while ( ! __kmp_compare_and_store8 ( p, old_value, new_value ) )
34 old_value = TCR_1( *p );
35 new_value = old_value | d;
41 __kmp_test_then_and8(
volatile kmp_int8 *p, kmp_int8 d )
43 kmp_int8 old_value, new_value;
45 old_value = TCR_1( *p );
46 new_value = old_value & d;
48 while ( ! __kmp_compare_and_store8 ( p, old_value, new_value ) )
51 old_value = TCR_1( *p );
52 new_value = old_value & d;
58 __kmp_test_then_or32(
volatile kmp_int32 *p, kmp_int32 d )
60 kmp_int32 old_value, new_value;
62 old_value = TCR_4( *p );
63 new_value = old_value | d;
65 while ( ! __kmp_compare_and_store32 ( p, old_value, new_value ) )
68 old_value = TCR_4( *p );
69 new_value = old_value | d;
75 __kmp_test_then_and32(
volatile kmp_int32 *p, kmp_int32 d )
77 kmp_int32 old_value, new_value;
79 old_value = TCR_4( *p );
80 new_value = old_value & d;
82 while ( ! __kmp_compare_and_store32 ( p, old_value, new_value ) )
85 old_value = TCR_4( *p );
86 new_value = old_value & d;
92 __kmp_test_then_add8(
volatile kmp_int8 *p, kmp_int8 d )
94 kmp_int64 old_value, new_value;
96 old_value = TCR_1( *p );
97 new_value = old_value + d;
98 while ( ! __kmp_compare_and_store8 ( p, old_value, new_value ) )
101 old_value = TCR_1( *p );
102 new_value = old_value + d;
109 __kmp_test_then_add64(
volatile kmp_int64 *p, kmp_int64 d )
111 kmp_int64 old_value, new_value;
113 old_value = TCR_8( *p );
114 new_value = old_value + d;
115 while ( ! __kmp_compare_and_store64 ( p, old_value, new_value ) )
118 old_value = TCR_8( *p );
119 new_value = old_value + d;
126 __kmp_test_then_or64(
volatile kmp_int64 *p, kmp_int64 d )
128 kmp_int64 old_value, new_value;
130 old_value = TCR_8( *p );
131 new_value = old_value | d;
132 while ( ! __kmp_compare_and_store64 ( p, old_value, new_value ) )
135 old_value = TCR_8( *p );
136 new_value = old_value | d;
143 __kmp_test_then_and64(
volatile kmp_int64 *p, kmp_int64 d )
145 kmp_int64 old_value, new_value;
147 old_value = TCR_8( *p );
148 new_value = old_value & d;
149 while ( ! __kmp_compare_and_store64 ( p, old_value, new_value ) )
152 old_value = TCR_8( *p );
153 new_value = old_value & d;