This is the mail archive of the binutils@sources.redhat.com mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: A bug in IA32 assembler


On Thu, Jun 28, 2001 at 09:37:49AM -0700, H . J . Lu wrote:
> On Thu, Jun 28, 2001 at 10:58:33PM +0930, Alan Modra wrote:
> > On Wed, Jun 27, 2001 at 11:48:57PM -0700, H . J . Lu wrote:
> > > # gcc -c xmm.s
> > > xmm.s: Assembler messages:
> > > xmm.s:11: Error: suffix or operands invalid for `movaps'
> > > 
> > > Which one is valid,
> > > 
> > > 	movaps (A.3),%xmm0
> > > 
> > > or
> > > 	movaps ($A.3),%xmm0
> > 
> > Both, I suppose, although the second one is trickery to get a
> 
> Are they the same? FYI, gcc seems to generate both from asm statements.

No.  They reference different symbols.

> > '$' into a label.
> > 
> > 	movaps A.3,%xmm0
> > 
> > is really what you want;  Your added parentheses just act as they
> > normally do in arithmetic expressions.
> 
> Right now, gas treats $A.3 as a label in
> 
> 	movaps ($A.3),%xmm0
> 
> That is the relocation is against `$A.3'. Also it doesn't allow
> 
> 	movaps $A.3,%xmm0
> 
> Do you have a fix for it?

I don't understand what you want a "fix" for.  "$A.3" in your last
example is an immediate with value of the address of "A.3".  movaps
doesn't accept immediates, only xmm registers or memory.

It's not at all normal to have `$' in labels on x86, as `$' is the
immediate prefix.  Do you think your trickery with `($A.3)' should
not be allowed?

Alan


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]