diff options
Diffstat (limited to 'openmp/runtime/src/z_Windows_NT-586_util.cpp')
-rw-r--r-- | openmp/runtime/src/z_Windows_NT-586_util.cpp | 189 |
1 files changed, 80 insertions, 109 deletions
diff --git a/openmp/runtime/src/z_Windows_NT-586_util.cpp b/openmp/runtime/src/z_Windows_NT-586_util.cpp index d7697d5a1be..4e21f7e1d7a 100644 --- a/openmp/runtime/src/z_Windows_NT-586_util.cpp +++ b/openmp/runtime/src/z_Windows_NT-586_util.cpp @@ -17,147 +17,118 @@ #if (KMP_ARCH_X86 || KMP_ARCH_X86_64) /* Only 32-bit "add-exchange" instruction on IA-32 architecture causes us to - * use compare_and_store for these routines - */ + use compare_and_store for these routines */ -kmp_int8 -__kmp_test_then_or8( volatile kmp_int8 *p, kmp_int8 d ) -{ - kmp_int8 old_value, new_value; +kmp_int8 __kmp_test_then_or8(volatile kmp_int8 *p, kmp_int8 d) { + kmp_int8 old_value, new_value; - old_value = TCR_1( *p ); - new_value = old_value | d; + old_value = TCR_1(*p); + new_value = old_value | d; - while ( ! __kmp_compare_and_store8 ( p, old_value, new_value ) ) - { - KMP_CPU_PAUSE(); - old_value = TCR_1( *p ); - new_value = old_value | d; - } - return old_value; + while (!__kmp_compare_and_store8(p, old_value, new_value)) { + KMP_CPU_PAUSE(); + old_value = TCR_1(*p); + new_value = old_value | d; + } + return old_value; } -kmp_int8 -__kmp_test_then_and8( volatile kmp_int8 *p, kmp_int8 d ) -{ - kmp_int8 old_value, new_value; +kmp_int8 __kmp_test_then_and8(volatile kmp_int8 *p, kmp_int8 d) { + kmp_int8 old_value, new_value; - old_value = TCR_1( *p ); - new_value = old_value & d; + old_value = TCR_1(*p); + new_value = old_value & d; - while ( ! __kmp_compare_and_store8 ( p, old_value, new_value ) ) - { - KMP_CPU_PAUSE(); - old_value = TCR_1( *p ); - new_value = old_value & d; - } - return old_value; + while (!__kmp_compare_and_store8(p, old_value, new_value)) { + KMP_CPU_PAUSE(); + old_value = TCR_1(*p); + new_value = old_value & d; + } + return old_value; } -kmp_int32 -__kmp_test_then_or32( volatile kmp_int32 *p, kmp_int32 d ) -{ - kmp_int32 old_value, new_value; +kmp_int32 __kmp_test_then_or32(volatile kmp_int32 *p, kmp_int32 d) { + kmp_int32 old_value, new_value; - old_value = TCR_4( *p ); - new_value = old_value | d; + old_value = TCR_4(*p); + new_value = old_value | d; - while ( ! __kmp_compare_and_store32 ( p, old_value, new_value ) ) - { - KMP_CPU_PAUSE(); - old_value = TCR_4( *p ); - new_value = old_value | d; - } - return old_value; + while (!__kmp_compare_and_store32(p, old_value, new_value)) { + KMP_CPU_PAUSE(); + old_value = TCR_4(*p); + new_value = old_value | d; + } + return old_value; } -kmp_int32 -__kmp_test_then_and32( volatile kmp_int32 *p, kmp_int32 d ) -{ - kmp_int32 old_value, new_value; +kmp_int32 __kmp_test_then_and32(volatile kmp_int32 *p, kmp_int32 d) { + kmp_int32 old_value, new_value; - old_value = TCR_4( *p ); - new_value = old_value & d; + old_value = TCR_4(*p); + new_value = old_value & d; - while ( ! __kmp_compare_and_store32 ( p, old_value, new_value ) ) - { - KMP_CPU_PAUSE(); - old_value = TCR_4( *p ); - new_value = old_value & d; - } - return old_value; + while (!__kmp_compare_and_store32(p, old_value, new_value)) { + KMP_CPU_PAUSE(); + old_value = TCR_4(*p); + new_value = old_value & d; + } + return old_value; } -kmp_int8 -__kmp_test_then_add8( volatile kmp_int8 *p, kmp_int8 d ) -{ - kmp_int64 old_value, new_value; +kmp_int8 __kmp_test_then_add8(volatile kmp_int8 *p, kmp_int8 d) { + kmp_int64 old_value, new_value; - old_value = TCR_1( *p ); + old_value = TCR_1(*p); + new_value = old_value + d; + while (!__kmp_compare_and_store8(p, old_value, new_value)) { + KMP_CPU_PAUSE(); + old_value = TCR_1(*p); new_value = old_value + d; - while ( ! __kmp_compare_and_store8 ( p, old_value, new_value ) ) - { - KMP_CPU_PAUSE(); - old_value = TCR_1( *p ); - new_value = old_value + d; - } - return old_value; + } + return old_value; } #if KMP_ARCH_X86 -kmp_int64 -__kmp_test_then_add64( volatile kmp_int64 *p, kmp_int64 d ) -{ - kmp_int64 old_value, new_value; - - old_value = TCR_8( *p ); +kmp_int64 __kmp_test_then_add64(volatile kmp_int64 *p, kmp_int64 d) { + kmp_int64 old_value, new_value; + + old_value = TCR_8(*p); + new_value = old_value + d; + while (!__kmp_compare_and_store64(p, old_value, new_value)) { + KMP_CPU_PAUSE(); + old_value = TCR_8(*p); new_value = old_value + d; - while ( ! __kmp_compare_and_store64 ( p, old_value, new_value ) ) - { - KMP_CPU_PAUSE(); - old_value = TCR_8( *p ); - new_value = old_value + d; - } - return old_value; + } + return old_value; } #endif /* KMP_ARCH_X86 */ -kmp_int64 -__kmp_test_then_or64( volatile kmp_int64 *p, kmp_int64 d ) -{ - kmp_int64 old_value, new_value; +kmp_int64 __kmp_test_then_or64(volatile kmp_int64 *p, kmp_int64 d) { + kmp_int64 old_value, new_value; - old_value = TCR_8( *p ); + old_value = TCR_8(*p); + new_value = old_value | d; + while (!__kmp_compare_and_store64(p, old_value, new_value)) { + KMP_CPU_PAUSE(); + old_value = TCR_8(*p); new_value = old_value | d; - while ( ! __kmp_compare_and_store64 ( p, old_value, new_value ) ) - { - KMP_CPU_PAUSE(); - old_value = TCR_8( *p ); - new_value = old_value | d; - } - - return old_value; + } + + return old_value; } -kmp_int64 -__kmp_test_then_and64( volatile kmp_int64 *p, kmp_int64 d ) -{ - kmp_int64 old_value, new_value; +kmp_int64 __kmp_test_then_and64(volatile kmp_int64 *p, kmp_int64 d) { + kmp_int64 old_value, new_value; - old_value = TCR_8( *p ); + old_value = TCR_8(*p); + new_value = old_value & d; + while (!__kmp_compare_and_store64(p, old_value, new_value)) { + KMP_CPU_PAUSE(); + old_value = TCR_8(*p); new_value = old_value & d; - while ( ! __kmp_compare_and_store64 ( p, old_value, new_value ) ) - { - KMP_CPU_PAUSE(); - old_value = TCR_8( *p ); - new_value = old_value & d; - } - - return old_value; + } + + return old_value; } #endif /* KMP_ARCH_X86 || KMP_ARCH_X86_64 */ - -/* ------------------------------------------------------------------------ */ -/* ------------------------------------------------------------------------ */ - |