'bx lr' vs 'mov pc,lr'

Daniel Silverstone dsilvers at simtec.co.uk
Sun Sep 13 18:15:00 EDT 2009

On Mon, Sep 14, 2009 at 12:55:24AM +0300, Felipe Contreras wrote:
> I noticed that in 'arch/arm/lib/delay.S' we are using 'mov pc, lr'
> instead of 'bx lr'. Why? It looks like 'mov pc, lr' is used all over
> the place, but I can't find out what's the reason.

I'd guess at the reason being that not all ARM processors whose ports use
arch/arm/lib/delay.S support the bx instruction, whereas the 'mov pc, lr'
instruction is universally supported.


Daniel Silverstone                              http://www.simtec.co.uk/

More information about the linux-arm-kernel mailing list