https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105257
--- Comment #4 from Eric Botcazou <ebotcazou at gcc dot gnu.org> --- > The problem is that (reg:DI 24 %i0 [109]) in a delay slot of the return > satisfies sparc_pic_register_p but epilogue_renumber turns that into: > (reg:DI 8 %o0) which doesn't satisfy it. > The attached patch fixes that by always copying over ORIGINAL_REGNO. This looks good to me. You might as well want to remove the ugly fallthrough.