https://gcc.gnu.org/bugzilla/show_bug.cgi?id=55212
--- Comment #165 from Kazumoto Kojima <kkojima at gcc dot gnu.org> --- (In reply to Oleg Endo from comment #163) > (In reply to Kazumoto Kojima from comment #130) > > Created attachment 58831 [details] > > a trial patch for c#129 > > > > A quick fix may be: > > > > * config/sh/sh.md > > (call_pcrel, call_value_pcrel, sibcall_pcrel): Use a fixed call clobberd > > register > > for the address. > > I don't understand why the 'call_pcrel' insn splits out the constant load of > the call address only after reload?! I think it could do that before > register allocation, when expanding the define_expand "call" pattern. Or am > I missing something? I also don't understand why these insn_and_split patterns are needed. Maybe some issue with sh_expand_sym_label2reg before reload_completed?