This is the mail archive of the
mailing list for the GCC project.
Re: PATCH: PR target/39590: inline asm %z on amd64 says "ll" instead of "q"
- From: Jakub Jelinek <jakub at redhat dot com>
- To: Uros Bizjak <ubizjak at gmail dot com>
- Cc: "H.J. Lu" <hjl dot tools at gmail dot com>, gcc-patches at gcc dot gnu dot org, jh at suse dot cz
- Date: Wed, 22 Apr 2009 14:28:25 +0200
- Subject: Re: PATCH: PR target/39590: inline asm %z on amd64 says "ll" instead of "q"
- References: <20090401190841.GA427@lucon.org> <firstname.lastname@example.org>
- Reply-to: Jakub Jelinek <jakub at redhat dot com>
On Wed, Apr 22, 2009 at 02:22:03PM +0200, Uros Bizjak wrote:
> On Wed, Apr 1, 2009 at 9:08 PM, H.J. Lu <email@example.com> wrote:
> > Gcc generates "movll" for asm statement with "mov%z1" on a DImode memory.
> > The problem is "%z" was never updated for 64bit. We can't generate 'q'
> > for "%z" due to "fild%z1\t%1" in i386.md. Not all x86-64 assemblers
> > support "fildq". This patch checks if assembler supports fildq and
> > generates fildq/movq when it works. OK for trunk?
> I think that we should move special fild/fist handling out of 'z' into
> new 'Z' operand modifier. This simplifies code a lot, and enables all
> sorts of special fild/fist handling to be handled in one place without
> overloading (otherwise undocumented!) 'z' modifier too much.
Wouldn't it be better to keep %zN as is and add %ZN which would expand
to q instead of ll for 64-bit operand?
When a new modifier is added, I don't see any advantages of modifying the
behaviour of %zN.