http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50582
--- Comment #1 from Paulo J. Matos <Paulo.Matos at csr dot com> 2011-09-30 15:54:25 UTC --- I have implemented a fix to this using a new macro: NOT_REALLY_HARD_REGS which is an array of FIRST_PSEUDO_REGISTER length, with a 1 in position x if register x should not be considered a hard register for the purposes of added_clobbers_hard_reg_p. So for my backend where FIRST_PSEUDO_REGISTER = 14, CC_REGNUM = 13, NOT_REALLY_HARD_REGS looks as follows: #define NOT_REALLY_HARD_REG \ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } I attach a patch to genemit.c implementing this enhancement.