}
static void addSuperReg(Record *R, Record *S,
- std::map<Record*, std::set<Record*> > &SubRegs,
+ std::map<Record*, std::set<Record*>,
+ LessRecord> &SubRegs,
std::map<Record*, std::set<Record*> > &SuperRegs,
std::map<Record*, std::set<Record*> > &Aliases) {
if (R == S) {
}
static void addSubSuperReg(Record *R, Record *S,
- std::map<Record*, std::set<Record*> > &SubRegs,
+ std::map<Record*, std::set<Record*>,
+ LessRecord> &SubRegs,
std::map<Record*, std::set<Record*> > &SuperRegs,
std::map<Record*, std::set<Record*> > &Aliases) {
if (R == S) {
class RegisterSorter {
private:
- std::map<Record*, std::set<Record*> > &RegisterSubRegs;
+ std::map<Record*, std::set<Record*>, LessRecord> &RegisterSubRegs;
public:
- RegisterSorter(std::map<Record*, std::set<Record*> > &RS)
+ RegisterSorter(std::map<Record*, std::set<Record*>, LessRecord> &RS)
: RegisterSubRegs(RS) {};
bool operator()(Record *RegA, Record *RegB) {
OS << " };\n";
// Emit register sub-registers / super-registers, aliases...
- std::map<Record*, std::set<Record*> > RegisterSubRegs;
+ std::map<Record*, std::set<Record*>, LessRecord> RegisterSubRegs;
std::map<Record*, std::set<Record*> > RegisterSuperRegs;
std::map<Record*, std::set<Record*> > RegisterAliases;
std::map<Record*, std::vector<std::pair<int, Record*> > > SubRegVectors;
OS << " const unsigned Empty_SubRegsSet[] = { 0 };\n";
// Loop over all of the registers which have sub-registers, emitting the
// sub-registers list to memory.
- for (std::map<Record*, std::set<Record*> >::iterator
+ for (std::map<Record*, std::set<Record*>, LessRecord>::iterator
I = RegisterSubRegs.begin(), E = RegisterSubRegs.end(); I != E; ++I) {
OS << " const unsigned " << I->first->getName() << "_SubRegsSet[] = { ";
std::vector<Record*> SubRegsVector;