> Actually, this depended on SMALL_REGISTER_CLASSES. If the target was not
> marked has having SMALL_REGISTER_CLASSES, any explicitly used hard register
> would not be used for register and/or spill allocations anywhere in the
> function.
That's one issue, but I'm not sure is the only one. Also
> > Do you remember why you wrote the call patterns this way? Was
> > there a problem with reload and clobbers of hard registers in a register
> > class containing a single register or some other historical quirk?
>
> I think the former. I no longer remember the details, but if you had
> a clobb
> The patterns clobber and use the rs6000 link register as a match_scratch
> with constraint of the link register class:
>
>(clobber (match_scratch:SI 0 "=l"))
>
> instead of clobbering the link register hard register directly in the
> early insn generation. This style dates to the original
Richard,
While fixing ports in preparation for the new dataflow
infrastructure, we found a problem with the way that the rs6000 port
represents clobbers and uses of registers in call and sibcall patterns.
The patterns clobber and use the rs6000 link register as a match_scratch
with constra