__irq void Foo( void )
With ARM 5.05, it compiles OK as
PUSH {r0-r12,lr} ... POP {r0-r12,lr} SUBS pc,lr,#4
With ARM 5.06, it compiles NOT OK as
PUSH {r4-r12,lr} ... POP {r4-r12,pc}
Hey!! When IRQ handler ends, the PC return address should be "lr -4 not the "lr"!
ARM, please fix this problem!