arm gcc assembler problem
Ian Lance Taylor
ian@airs.com
Mon Feb 14 16:00:00 GMT 2005
Scottie Shore <umshore4@cc.umanitoba.ca> writes:
> A test file with the following:
>
> .text
> test:
> b test
> b test
> b test
> b test
> b test
> b test
> b test
> b test
>
> generates the following code:
>
> Disassembly of section .text:
>
> 00000000 <test>:
> 0: eafffffe b 0 <test>
> 4: eafffffe b 4 <test+0x4>
> 8: eafffffe b 8 <test+0x8>
> c: eafffffe b c <test+0xc>
> 10: eafffffe b 10 <test+0x10>
> 14: eafffffe b 14 <test+0x14>
> 18: eafffffe b 18 <test+0x18>
> 1c: eafffffe b 1c <test+0x1c>
>
> with both gcc-3.4.3 compiled from debian sources, and gcc-2.95.2 found on
> the LART site.
>
> I'm at a loss to explain this. How to fix it?
Since you are using an assembler source file, this is not a gcc issue.
The assembler, gas, is part of the binutils. It would be more
appropriate to ask on the binutils mailing list. See
http://sourceware.org/binutils/
Anyhow, it looks to me like you are looking at the disassembly of the
object file, not of the fully linked executable.
If you use objdump -dr, you will see that there are relocations on
each of the instructions. The linker will process those relocations
when linking to produce a correct final executable.
Ian
More information about the Gcc-help
mailing list