https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82150
--- Comment #13 from david.welch at netronome dot com --- Very sorry it has been years since I did this research, a simple nop wont fix it but a branch to self will. bad TEST: push {r4,lr} pop {r4,pc} bx r0 /*.hword 0x4700*/ nop nop bad TEST: push {r4,lr} pop {r4,pc} nop bx r0 /*.hword 0x4700*/ nop nop good TEST: push {r4,lr} pop {r4,pc} b . bx r0 /*.hword 0x4700*/ nop nop