------- Comment #1 from ebotcazou at gcc dot gnu dot org 2010-09-20 21:59 ------- > Even though the use of the "m" constraint will fix this testcase, "m" cannot > be used in general, because it allows the operand to be offsetable.
Right. > The casx instruction will not tolerate an offset. According to gcc info page, > "V" should be just like "m", but not offsetable. Wonder why "V" does not work > when "m" does in this case. Because essentially all memory operands are offsettable on the SPARC. And the operand required by 'casx', i.e [reg], is also offsettable. The fix is to use 'casx [%0]' instead and adjust. -- ebotcazou at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |ebotcazou at gcc dot gnu dot | |org Status|UNCONFIRMED |RESOLVED Resolution| |INVALID http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36558