Hi, On Thu, 2013-09-19 at 10:44 +0200, Christian Bruel wrote: > Hi Kaz, Oleg, > > On 09/19/2013 01:15 AM, Kaz Kojima wrote: > > Christian Bruel <christian.br...@st.com> wrote: > >> && (!can_create_pseudo_p () && REG_P (operands[0]) && REG_P (operands[1]))" > >> > >> is necessary ? > > It looks an another hack to allow the 2nd and 3rd alternatives only > > when reloading. If so, it might be a bit cleaner to use a special > > predicate like > > > > > This still looks complicated to me. I have tested for sh-superh-elf and > sh-linux the attached patch that just "fixes" the issue reported by > Richard with no regression and absolutely no differences in code > generation for CSIBe and a few other benches (eembc, coremark, ...). > The spill alternatives are correctly selected and the original PR still > passes. > > If OK I'd like to apply it to trunk/4.8. If there is the need for an > additional hack, How about sending it separately ?
Yeah, the move patterns probably could use some cleanup / refactoring anyway. I also wonder what is going to happen if LRA is used ... but that's another story. Have you also checked the patch for SH2A? Cheers, Oleg