gas: inconsistencies w/ immediates
Andreas Schwab
schwab@suse.de
Mon Jul 31 06:12:00 GMT 2000
Andrew Morton <andrewm@uow.edu.au> writes:
|> Using HJ's 2.9.5.0.34 binutils release (x86):
|>
|> The handling of immediate constants appears to be inconsistent:
|>
|>
|> movl $1234,%eax
|>
|> OK, this moves an immediate into eax.
|>
|>
|> movl $1234/$10,%eax
|>
|> This fails because it is treating $10 as a label, not as a constant.
Isn't `$' part of the insn syntax (immediate prefix)? IMHO this should be
written as:
movl $1234/10,%eax
|> This bizarre handling of $NNN really bites because this is the format in
|> which compiler-generated constants come out of GCC. For example, suppose
|> you wish to do this:
|>
|>
|> foo()
|> {
|> asm(".equ SIZEOF_FOO,%0" :: "i" (sizeof foo));
^^
Try %c0.
Andreas.
--
Andreas Schwab "And now for something
SuSE Labs completely different."
Andreas.Schwab@suse.de
SuSE GmbH, Schanzäckerstr. 10, D-90443 Nürnberg
More information about the Binutils
mailing list