This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] i386: Remove "m" constraint for "register_operand"
- From: Rask Ingemann Lambertsen <rask at sygehus dot dk>
- To: Paolo Bonzini <bonzini at gnu dot org>
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Fri, 10 Aug 2007 13:04:05 +0200
- Subject: Re: [PATCH] i386: Remove "m" constraint for "register_operand"
- References: <20070810094046.GU25795@sygehus.dk> <46BC3593.2060804@gnu.org>
On Fri, Aug 10, 2007 at 11:53:23AM +0200, Paolo Bonzini wrote:
> Rask Ingemann Lambertsen wrote:
> > There is a mismatch between the constraints permitting memory operands
> >and the predicate accepting only register operands. This patch fixes that.
> >Bootstrapped and tested on x86_64-unknown-linux-gnu with no regressions. Ok
> >for trunk?
>
> I don't think so. The register_operand could be replaced with a
> general_operand following the same logic (possibly with further tweaks
> to the predicates);
1) The destination must not be general_operand (try it if you don't believe
me), but you could argue for nonimmediate_operand instead. See 2).
2) The *zext* patterns really do only take a register destination.
> also, given the code that is present now in the
> trunk, reload might still use the memory constraint in case a value is
> spilled.
Wouldn't you get "unrecognizable insn" ICEs?
--
Rask Ingemann Lambertsen