This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug other/55981] std::atomic store is split in two smaller stores


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55981

--- Comment #1 from Evgeniy Stepanov <eugeni.stepanov at gmail dot com> 2013-01-14 22:45:30 UTC ---
Disassembly of the loop in ff() function:

  4007c0:       movl   $0x2,0x2008de(%rip)        # 6010a8 <y>
  4007ca:       movl   $0x1,0x2008d8(%rip)        # 6010ac <y+0x4>
  4007d4:       sub    $0x1,%eax
  4007d7:       mfence 
  4007da:       movl   $0x4,0x2008c4(%rip)        # 6010a8 <y>
  4007e4:       movl   $0x3,0x2008be(%rip)        # 6010ac <y+0x4>
  4007ee:       mfence 
  4007f1:       jne    4007c0 <_Z2ffv+0xb0>

Does not look atomic.
Has all the proper fences, though.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]