This is the mail archive of the binutils@sourceware.org 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]
Other format: [Raw text]

Re: Question on gas difference between 2.19.1 and 2.20


Here I attach the result of the assembly with binutils 2.19.1.

For the "objdump -S" of the related part:
Disassembly of section .reset_vector_sect:

00000000 <romBoot-0x3c>:
#endif

        /* Check if we booted from DRAM. If we did someone already      */
        /* initialize the DRAM controller                               */

        adr     r4, jumpStart           /* r4 <- current position of code   */
   0:   e24f4008        sub     r4, pc, #8      ; 0x8
        mov     r5, #~0xff
   4:   e3e050ff        mvn     r5, #255        ; 0xff
        and     r4, r4, r5
   8:   e0044005        and     r4, r4, r5
    nop
    nop
/* End of code load */
#endif /* MV78XX0 */

Moving the label below the '.section' solved my assembly problems in 2.20.

Regards,
LluÃs.

2009/11/3 Phil Blundell <pb@reciva.com>:
> On Tue, 2009-11-03 at 20:24 +0100, LluÃs Batlle wrote:
>> jumpStart:
>>
>> .section    Â".reset_vector_sect",#alloc, #execinstr
>>
>>     /* Check if we booted from DRAM. If we did someone already   Â*/
>>     /* initialize the DRAM controller                */
>>
>>     adr   r4, jumpStart      /* r4 <- current position of
>> code  */ /* line 62 of the source file */
>>     mov   r5, #~0xff
>
>> Assembling with binutils 2.20 gas, I get:
>> jump.S:62: Error: symbol .text is in a different section
>>
>> Does anybody understand this behaviour? Maybe I am doing something
>> wrong? I don't understand the meaning of that message in this context.
>
> I am rather surprised that binutils 2.19.1 accepted this code. ÂWhat
> output did it produce?
>
> The "adr" pseudo-op is (approximately) an assembler shorthand for "add
> rN, pc, #(dest - .)", i.e. it assembles to an arithmetic operation with
> an immediate operand. ÂUsing adr across sections is possible in theory,
> albeit with restrictions, but I don't think either GAS nor GNU ld
> understand the relocation types that you would need to make it work.
>
> p.
>
>
>

Attachment: jump.o
Description: Binary data


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