diff options
author | sievlev <[email protected]> | 2022-02-10 16:51:45 +0300 |
---|---|---|
committer | Daniil Cherednik <[email protected]> | 2022-02-10 16:51:45 +0300 |
commit | c38d513b2c4ace7c22019ef4cc24003204b77391 (patch) | |
tree | 2d6749d50b5f7a18a7f6d8fba895a4fb633d60a5 /util/system | |
parent | 2441b91fbbba534805430952c0770c88c3df8236 (diff) |
Restoring authorship annotation for <[email protected]>. Commit 1 of 2.
Diffstat (limited to 'util/system')
-rw-r--r-- | util/system/atomic_gcc.h | 36 | ||||
-rw-r--r-- | util/system/atomic_ops.h | 10 | ||||
-rw-r--r-- | util/system/atomic_ut.cpp | 48 | ||||
-rw-r--r-- | util/system/atomic_win.h | 8 |
4 files changed, 51 insertions, 51 deletions
diff --git a/util/system/atomic_gcc.h b/util/system/atomic_gcc.h index ed8dc2bdc53..78c713ed302 100644 --- a/util/system/atomic_gcc.h +++ b/util/system/atomic_gcc.h @@ -7,20 +7,20 @@ static inline TAtomicBase AtomicGet(const TAtomic& a) { TAtomicBase tmp; -#if defined(_arm64_) +#if defined(_arm64_) __asm__ __volatile__( "ldar %x[value], %[ptr] \n\t" : [value] "=r"(tmp) : [ptr] "Q"(a) : "memory"); -#else +#else __atomic_load(&a, &tmp, __ATOMIC_ACQUIRE); -#endif +#endif return tmp; } static inline void AtomicSet(TAtomic& a, TAtomicBase v) { -#if defined(_arm64_) +#if defined(_arm64_) __asm__ __volatile__( "stlr %x[value], %[ptr] \n\t" : [ptr] "=Q"(a) @@ -29,10 +29,10 @@ static inline void AtomicSet(TAtomic& a, TAtomicBase v) { #else __atomic_store(&a, &v, __ATOMIC_RELEASE); #endif -} +} static inline intptr_t AtomicIncrement(TAtomic& p) { - return __atomic_add_fetch(&p, 1, __ATOMIC_SEQ_CST); + return __atomic_add_fetch(&p, 1, __ATOMIC_SEQ_CST); } static inline intptr_t AtomicGetAndIncrement(TAtomic& p) { @@ -56,15 +56,15 @@ static inline intptr_t AtomicGetAndAdd(TAtomic& p, intptr_t v) { } static inline intptr_t AtomicSwap(TAtomic* p, intptr_t v) { - (void)p; // disable strange 'parameter set but not used' warning on gcc - intptr_t ret; - __atomic_exchange(p, &v, &ret, __ATOMIC_SEQ_CST); - return ret; + (void)p; // disable strange 'parameter set but not used' warning on gcc + intptr_t ret; + __atomic_exchange(p, &v, &ret, __ATOMIC_SEQ_CST); + return ret; } static inline bool AtomicCas(TAtomic* a, intptr_t exchange, intptr_t compare) { - (void)a; // disable strange 'parameter set but not used' warning on gcc - return __atomic_compare_exchange(a, &compare, &exchange, false, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST); + (void)a; // disable strange 'parameter set but not used' warning on gcc + return __atomic_compare_exchange(a, &compare, &exchange, false, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST); } static inline intptr_t AtomicGetAndCas(TAtomic* a, intptr_t exchange, intptr_t compare) { @@ -74,15 +74,15 @@ static inline intptr_t AtomicGetAndCas(TAtomic* a, intptr_t exchange, intptr_t c } static inline intptr_t AtomicOr(TAtomic& a, intptr_t b) { - return __atomic_or_fetch(&a, b, __ATOMIC_SEQ_CST); -} - -static inline intptr_t AtomicXor(TAtomic& a, intptr_t b) { - return __atomic_xor_fetch(&a, b, __ATOMIC_SEQ_CST); + return __atomic_or_fetch(&a, b, __ATOMIC_SEQ_CST); } +static inline intptr_t AtomicXor(TAtomic& a, intptr_t b) { + return __atomic_xor_fetch(&a, b, __ATOMIC_SEQ_CST); +} + static inline intptr_t AtomicAnd(TAtomic& a, intptr_t b) { - return __atomic_and_fetch(&a, b, __ATOMIC_SEQ_CST); + return __atomic_and_fetch(&a, b, __ATOMIC_SEQ_CST); } static inline void AtomicBarrier() { diff --git a/util/system/atomic_ops.h b/util/system/atomic_ops.h index 76766b4a0aa..07bc6a6c58d 100644 --- a/util/system/atomic_ops.h +++ b/util/system/atomic_ops.h @@ -114,11 +114,11 @@ inline TEnableIfCastable<T, T> AtomicAnd(T volatile& target, TAtomicBase value) return static_cast<T>(AtomicAnd(*AsAtomicPtr(&target), value)); } -template <typename T> -inline TEnableIfCastable<T, T> AtomicXor(T volatile& target, TAtomicBase value) { - return static_cast<T>(AtomicXor(*AsAtomicPtr(&target), value)); -} - +template <typename T> +inline TEnableIfCastable<T, T> AtomicXor(T volatile& target, TAtomicBase value) { + return static_cast<T>(AtomicXor(*AsAtomicPtr(&target), value)); +} + // pointer types template <typename T> diff --git a/util/system/atomic_ut.cpp b/util/system/atomic_ut.cpp index 07211ffba73..3bf68177d93 100644 --- a/util/system/atomic_ut.cpp +++ b/util/system/atomic_ut.cpp @@ -18,9 +18,9 @@ class TAtomicTest UNIT_TEST(TestAtomicSub) UNIT_TEST(TestAtomicGetAndSub) UNIT_TEST(TestAtomicSwap) - UNIT_TEST(TestAtomicOr) - UNIT_TEST(TestAtomicAnd) - UNIT_TEST(TestAtomicXor) + UNIT_TEST(TestAtomicOr) + UNIT_TEST(TestAtomicAnd) + UNIT_TEST(TestAtomicXor) UNIT_TEST(TestCAS) UNIT_TEST(TestGetAndCAS) UNIT_TEST(TestLockUnlock) @@ -152,27 +152,27 @@ private: UNIT_ASSERT_VALUES_EQUAL(v, Max<intptr_t>()); } - inline void TestAtomicOr() { - TAtomic v = 0xf0; - - UNIT_ASSERT_VALUES_EQUAL(AtomicOr(v, 0x0f), 0xff); - UNIT_ASSERT_VALUES_EQUAL(v, 0xff); - } - - inline void TestAtomicAnd() { - TAtomic v = 0xff; - - UNIT_ASSERT_VALUES_EQUAL(AtomicAnd(v, 0xf0), 0xf0); - UNIT_ASSERT_VALUES_EQUAL(v, 0xf0); - } - - inline void TestAtomicXor() { - TAtomic v = 0x00; - - UNIT_ASSERT_VALUES_EQUAL(AtomicXor(v, 0xff), 0xff); - UNIT_ASSERT_VALUES_EQUAL(AtomicXor(v, 0xff), 0x00); - } - + inline void TestAtomicOr() { + TAtomic v = 0xf0; + + UNIT_ASSERT_VALUES_EQUAL(AtomicOr(v, 0x0f), 0xff); + UNIT_ASSERT_VALUES_EQUAL(v, 0xff); + } + + inline void TestAtomicAnd() { + TAtomic v = 0xff; + + UNIT_ASSERT_VALUES_EQUAL(AtomicAnd(v, 0xf0), 0xf0); + UNIT_ASSERT_VALUES_EQUAL(v, 0xf0); + } + + inline void TestAtomicXor() { + TAtomic v = 0x00; + + UNIT_ASSERT_VALUES_EQUAL(AtomicXor(v, 0xff), 0xff); + UNIT_ASSERT_VALUES_EQUAL(AtomicXor(v, 0xff), 0x00); + } + inline void TestAtomicPtr() { int* p; AtomicSet(p, nullptr); diff --git a/util/system/atomic_win.h b/util/system/atomic_win.h index 65c290e6ccc..ff36961ceb7 100644 --- a/util/system/atomic_win.h +++ b/util/system/atomic_win.h @@ -100,10 +100,10 @@ static inline intptr_t AtomicAnd(TAtomic& a, intptr_t b) { return _InterlockedAnd64(&a, b) & b; } -static inline intptr_t AtomicXor(TAtomic& a, intptr_t b) { - return _InterlockedXor64(&a, b) ^ b; -} - +static inline intptr_t AtomicXor(TAtomic& a, intptr_t b) { + return _InterlockedXor64(&a, b) ^ b; +} + #endif // _x86_ //TODO |