Port-arm archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: [PATCH] thumb fixes



On Thu, Sep 04, 2008 at 03:10:11PM +0100, Richard Earnshaw wrote:
> On Thu, 2008-09-04 at 15:25 +0300, Mikko Rapeli wrote:
> > I suppose 0x8928 is in plt ELF section where objdump also shows a few
> > undefined instrunctions:
> 
> They aren't instructions, they're data entries  The PLT sequence loads
> that value and jumps to it.  

Well, single stepping in gdb convinced me that they are jump table 
instructions and executed, and cause of the illegal instruction fault 
in thumb mode.

> Note that PLT sequences rely on the target
> being either an ARM instruction or that the CPU running the code is v5t
> or later (since ldr pc does not interwork correctly on v4t).

I suppose netbsd defaults to v4t, so I hope -march=arm5t will fix this.

> PLT sequences are used for inter-library calls and are intended to
> support dynamic loading and lazy binding (resolving the symbol only when
> needed).

Thanks, this is what I understood from
http://www.linuxjournal.com/article/1060 as well.

> Before you start messing with that, you should probably read the ARM
> Procedure call documentation carefully (see
> http://infocenter.arm.com/help/topic/com.arm.doc.subset.swdev.abi/index.html).
>   Although NetBSD doesn't conform to the latest version of the spec many of 
> the notes will be useful.

Thanks, I'll take a look.

-Mikko


Home | Main Index | Thread Index | Old Index