ia64.md weirdness (cmpxchg_acq_si)

Zack Weinberg zack@codesourcery.com
Fri Oct 17 09:24:00 GMT 2003


Richard Henderson <rth@redhat.com> writes:

> On Thu, Oct 16, 2003 at 03:44:04PM -0700, Zack Weinberg wrote:
>> ... I guess, to make genrecog happy, we'd need two copies of the
>> pattern, one with DImode ar.ccv and one with SImode?
>
> No.  As far as I can tell it's a bug if we ever do anything but
> DImode.  From the instruction description:
>
>    A value consisting of sz bytes ... is read from memory starting
>    at the address specified by the value in GR r3. The value is zero
>    extended and compared with the contents of the Cmpxchg Compare Value
>    application register (AR[CCV]). If the two are equal ...
>
> The hardware comparison is always in DImode.  The builtins that
> do SImode stuff should be zero_extending what they put in there.

Ok.  If no one beats me to it, I will stare at the architecture manual
and the machine description and fix this.  After the XFmode conversion
is done to everyone's satisfaction and committed.

zw



More information about the Gcc mailing list