--- old/src/hotspot/share/oops/accessBackend.inline.hpp 2019-11-21 11:58:13.600051852 +0100 +++ new/src/hotspot/share/oops/accessBackend.inline.hpp 2019-11-21 11:58:13.112043611 +0100 @@ -85,35 +85,35 @@ template template -inline T RawAccessBarrier::oop_atomic_cmpxchg(T new_value, void* addr, T compare_value) { +inline T RawAccessBarrier::oop_atomic_cmpxchg(void* addr, T compare_value, T new_value) { typedef typename AccessInternal::EncodedType::type Encoded; Encoded encoded_new = encode(new_value); Encoded encoded_compare = encode(compare_value); - Encoded encoded_result = atomic_cmpxchg(encoded_new, - reinterpret_cast(addr), - encoded_compare); + Encoded encoded_result = atomic_cmpxchg(reinterpret_cast(addr), + encoded_compare, + encoded_new); return decode(encoded_result); } template template -inline T RawAccessBarrier::oop_atomic_cmpxchg_at(T new_value, oop base, ptrdiff_t offset, T compare_value) { - return oop_atomic_cmpxchg(new_value, field_addr(base, offset), compare_value); +inline T RawAccessBarrier::oop_atomic_cmpxchg_at(oop base, ptrdiff_t offset, T compare_value, T new_value) { + return oop_atomic_cmpxchg(field_addr(base, offset), compare_value, new_value); } template template -inline T RawAccessBarrier::oop_atomic_xchg(T new_value, void* addr) { +inline T RawAccessBarrier::oop_atomic_xchg(void* addr, T new_value) { typedef typename AccessInternal::EncodedType::type Encoded; Encoded encoded_new = encode(new_value); - Encoded encoded_result = atomic_xchg(encoded_new, reinterpret_cast(addr)); + Encoded encoded_result = atomic_xchg(reinterpret_cast(addr), encoded_new); return decode(encoded_result); } template template -inline T RawAccessBarrier::oop_atomic_xchg_at(T new_value, oop base, ptrdiff_t offset) { - return oop_atomic_xchg(new_value, field_addr(base, offset)); +inline T RawAccessBarrier::oop_atomic_xchg_at(oop base, ptrdiff_t offset, T new_value) { + return oop_atomic_xchg(field_addr(base, offset), new_value); } template @@ -174,17 +174,17 @@ inline typename EnableIf< HasDecorator::value>::type RawAccessBarrier::store_internal(void* addr, T value) { - Atomic::store(value, reinterpret_cast(addr)); + Atomic::store(reinterpret_cast(addr), value); } template template inline typename EnableIf< HasDecorator::value, T>::type -RawAccessBarrier::atomic_cmpxchg_internal(T new_value, void* addr, T compare_value) { - return Atomic::cmpxchg(new_value, - reinterpret_cast(addr), +RawAccessBarrier::atomic_cmpxchg_internal(void* addr, T compare_value, T new_value) { + return Atomic::cmpxchg(reinterpret_cast(addr), compare_value, + new_value, memory_order_relaxed); } @@ -192,10 +192,10 @@ template inline typename EnableIf< HasDecorator::value, T>::type -RawAccessBarrier::atomic_cmpxchg_internal(T new_value, void* addr, T compare_value) { - return Atomic::cmpxchg(new_value, - reinterpret_cast(addr), +RawAccessBarrier::atomic_cmpxchg_internal(void* addr, T compare_value, T new_value) { + return Atomic::cmpxchg(reinterpret_cast(addr), compare_value, + new_value, memory_order_conservative); } @@ -203,9 +203,9 @@ template inline typename EnableIf< HasDecorator::value, T>::type -RawAccessBarrier::atomic_xchg_internal(T new_value, void* addr) { - return Atomic::xchg(new_value, - reinterpret_cast(addr)); +RawAccessBarrier::atomic_xchg_internal(void* addr, T new_value) { + return Atomic::xchg(reinterpret_cast(addr), + new_value); } // For platforms that do not have native support for wide atomics, @@ -216,9 +216,9 @@ template inline typename EnableIf< AccessInternal::PossiblyLockedAccess::value, T>::type -RawAccessBarrier::atomic_xchg_maybe_locked(T new_value, void* addr) { +RawAccessBarrier::atomic_xchg_maybe_locked(void* addr, T new_value) { if (!AccessInternal::wide_atomic_needs_locking()) { - return atomic_xchg_internal(new_value, addr); + return atomic_xchg_internal(addr, new_value); } else { AccessInternal::AccessLocker access_lock; volatile T* p = reinterpret_cast(addr); @@ -232,9 +232,9 @@ template inline typename EnableIf< AccessInternal::PossiblyLockedAccess::value, T>::type -RawAccessBarrier::atomic_cmpxchg_maybe_locked(T new_value, void* addr, T compare_value) { +RawAccessBarrier::atomic_cmpxchg_maybe_locked(void* addr, T compare_value, T new_value) { if (!AccessInternal::wide_atomic_needs_locking()) { - return atomic_cmpxchg_internal(new_value, addr, compare_value); + return atomic_cmpxchg_internal(addr, compare_value, new_value); } else { AccessInternal::AccessLocker access_lock; volatile T* p = reinterpret_cast(addr);