> > 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 clobber of a hard reg, there were a number of things that such a hard > reg couldn't be used for (this is where the details are murky) and in order > to avoid that problem a match_scratch was used to delay the explicit hard > register usage as long as possible.
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.