http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59189 --- Comment #3 from Oleg Endo <olegendo at gcc dot gnu.org> --- Maybe adding a "conditional far branch" insn, as mentioned in PR 54762, would fix this problem, or at least parts of it.