https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85669
--- Comment #57 from Segher Boessenkool <segher at gcc dot gnu.org> --- The blrl thing ("skip a return") doesn't kill the return stack; all CPUs with a return stack can recover it here afaik. Recovery of course takes a little time still. Newer CPUs predict BL+4 as not-taken (but finish it as if the prediction was correct); older CPUs do not create a link stack entry if BI=31. So we emit "bcl 20,31,$+4" for this, which works optimally in all cases.