[Bug target/44217] GCC emits cmpxchg16b which Sun as cannot handle

ro at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Tue Jan 11 14:04:00 GMT 2011


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

Rainer Orth <ro at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2011.01.11 13:49:30
     Ever Confirmed|0                           |1

--- Comment #2 from Rainer Orth <ro at gcc dot gnu.org> 2011-01-11 13:49:30 UTC ---
Looking further, there's certainly a compiler problem here.  In the assembler
output for ibgomp.c/atomic-2.c, I see

> grep cmpxchg atomic-2.s 
        lock cmpxchgq   %rcx, d(%rip)
        lock cmpxchg16b ld(%rip)

The first variant can be assembled correctly by Sun as, while the second
cannot.
It seems that GCC is buggy/inconsistent here: while Sun as knows about
cmpxchg8b,
it normally requires cmpxchg{b,w,l,q}, and definitely cannot handle cmpxchg16b.



More information about the Gcc-bugs mailing list