This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: ia64.md weirdness (cmpxchg_acq_si)
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