This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: Not emitting "blx address" on Cortex-M3
On Mon, 2009-05-04 at 17:30 +0100, Paul Brook wrote:
> On Saturday 02 May 2009, Samuel Tardieu wrote:
> > The ARM Cortex-M3 which uses the thumb2 instruction set can use "blx
> > register" but not "blx address".
>
> Not technically true. blx address is fine, you're just guaranteed to get a
> fault afterwards.
>
> > When compiling calls to GCC helper functions (here a soft-float division
> > between doubles), this instruction is generated:
>
> > 8170: f000 e94a blx 8408 <__aeabi_ddiv>
>
> Almost certainly means you're linking against ARM libraries. Don't do that.
The linker ought to be able to detect this using the object
attributes... M-profile objects shouldn't be compatible with ARM
objects.
R.