This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: ia64.md weirdness (cmpxchg_acq_si)
- From: Richard Henderson <rth at redhat dot com>
- To: Zack Weinberg <zack at codesourcery dot com>
- Cc: gcc at gcc dot gnu dot org
- Date: Thu, 16 Oct 2003 22:55:55 -0700
- Subject: Re: ia64.md weirdness (cmpxchg_acq_si)
- References: <87ad80ztu3.fsf@egil.codesourcery.com>
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.
r~