b[l]x instruction in cortex-m3 code

Daniel Jacobowitz drow@false.org
Wed Jul 20 06:19:00 GMT 2011
(Without HTML this time)

On Mon, Jul 18, 2011 at 5:49 PM, Daniel Otte <daniel.otte@rub.de> wrote:
> That was also my first thought, but it happens also with calls in the same file.

No, this is something else.

>  1d2:   f240 13b1       movw    r3, #433        ; 0x1b1
>  1d6:   f2c0 0300       movt    r3, #0

Notice the low bit set here.

>  1e2:   4798            blx     r3

Both bx reg and blx reg use mode based on the reg's low bit; they are
perfectly fine on Cortex-M.  But if you give them an invalid argument,
they'll fault.

-- 
Thanks,
Daniel



More information about the Binutils mailing list