Sujet : Re: Strange asm generated by GCC...
De : jseigh_es00 (at) *nospam* xemaps.com (jseigh)
Groupes : comp.archDate : 20. Dec 2024, 12:55:50
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <vk3m06$3e8ii$1@dont-email.me>
References : 1 2
User-Agent : Mozilla Thunderbird
On 12/19/24 20:02, Chris M. Thomasson wrote:
On 12/19/2024 4:43 PM, Chris M. Thomasson wrote:
Why in the world would GCC use an XCHG instruction for the following code. The damn XCHG has an implied LOCK prefix! Yikes!
>
https://godbolt.org/z/Thxchdcr8
_______________________
#include <atomic>
>
int main()
{
>
std::atomic<unsigned long> m_state = 0;
>
m_state.store(std::memory_order_relaxed);
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Strange to me that this even compiled at all. I clearly forgot to put in a value. aka:
m_state.store(1, std::memory_order_release);
Sorry about that. ;^o
The 2nd parameter has a default value, std::memory_order_cst.
Your 1st argument was a std::memory_order value which is an
integer value. So basically
m.state.store(std::memory_order_relaxed, std::memory_order_cst);