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 target/42869] GOMP_critical_start wrong on Itanium due to __sync miscompilation



------- Comment #4 from sje at cup dot hp dot com  2010-03-09 23:49 -------
Yes, I think this is clearly a bug in the IA64 definition of
sync_compare_and_swap.  I think the fix is swapping the two instructions being
generated by the IA64 sync_compare_and_swap instruction.  (cmpxchg4.rel
followed by a memory fence instead of a memory fence followed by cmpxchg4.rel).


-- 


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


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