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.

Reply via email to