------- Comment #3 from vmakarov at redhat dot com 2008-10-14 19:42 ------- I've checked the old RA. It does not assigned partially clobbered hard register because it is done only when non partially clobbered hard regs were tried first. Sh has a lot of such registers therefore the chance to generate wrong code is small.
I can simulate the same behaviour for IRA by increasing costs for partially clobbered hard registers. Currently rs6000 and sh define HARD_REGNO_CALL_PART_CLOBBERED. So even the problem is solved for sh in different way, the patch increasing cost would be useful for rs6000. Still, as I wrote, the complete solution (the mentioned cost increase will be still necessary in any case) would be save and restore partially clobbered hard-registers in caller-saves.c. The patch increasing the costs will be sent later today. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37633