I wonder if we could do something more sensible than simply using the constant 30. Perhaps some function of FIRST_PSEUDO_REGISTER, like FIRST_PSEUDO_REGISTER+20, or FIRST_PSEUDO_REGISTER*2 or even MAX (FIRST_PSEUDO_REGISTER, 29). This would at least solve the problem here.
Why is there a maximum here at all -- some hugely non-linear algorithm or so? FIRST_PSEUDO_REGISTER is 114 for rs6000, that would be a bit high in that case. If it's really just an arbitrary maximum, with no deeper reason behind it, why not just up it to 1000 and be done with it for the next ten years ;-) Segher