------- 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

Reply via email to