mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-08-05 13:26:55 +00:00
simplify some code
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45642 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -175,10 +175,7 @@ void InstrInfoEmitter::emitRecord(const CodeGenInstruction &Inst, unsigned Num,
|
||||
else
|
||||
OS << Inst.Name;
|
||||
|
||||
unsigned ItinClass = !IsItineraries ? 0 :
|
||||
ItinClassNumber(Inst.TheDef->getValueAsDef("Itinerary")->getName());
|
||||
|
||||
OS << "\",\t" << ItinClass << ", 0";
|
||||
OS << "\",\t" << getItinClassNumber(Inst.TheDef) << ", 0";
|
||||
|
||||
// Try to determine (from the pattern), if the instruction is a store.
|
||||
bool isStore = false;
|
||||
@@ -258,28 +255,23 @@ void InstrInfoEmitter::emitRecord(const CodeGenInstruction &Inst, unsigned Num,
|
||||
OS << " }, // Inst #" << Num << " = " << Inst.TheDef->getName() << "\n";
|
||||
}
|
||||
|
||||
struct LessRecord {
|
||||
struct RecordNameComparator {
|
||||
bool operator()(const Record *Rec1, const Record *Rec2) const {
|
||||
return Rec1->getName() < Rec2->getName();
|
||||
}
|
||||
};
|
||||
|
||||
void InstrInfoEmitter::GatherItinClasses() {
|
||||
std::vector<Record*> DefList =
|
||||
Records.getAllDerivedDefinitions("InstrItinClass");
|
||||
IsItineraries = !DefList.empty();
|
||||
|
||||
if (!IsItineraries) return;
|
||||
|
||||
std::sort(DefList.begin(), DefList.end(), LessRecord());
|
||||
std::sort(DefList.begin(), DefList.end(), RecordNameComparator());
|
||||
|
||||
for (unsigned i = 0, N = DefList.size(); i < N; i++) {
|
||||
Record *Def = DefList[i];
|
||||
ItinClassMap[Def->getName()] = i;
|
||||
}
|
||||
for (unsigned i = 0, N = DefList.size(); i < N; i++)
|
||||
ItinClassMap[DefList[i]->getName()] = i;
|
||||
}
|
||||
|
||||
unsigned InstrInfoEmitter::ItinClassNumber(std::string ItinName) {
|
||||
return ItinClassMap[ItinName];
|
||||
unsigned InstrInfoEmitter::getItinClassNumber(const Record *InstRec) {
|
||||
return ItinClassMap[InstRec->getValueAsDef("Itinerary")->getName()];
|
||||
}
|
||||
|
||||
void InstrInfoEmitter::emitShiftedValue(Record *R, StringInit *Val,
|
||||
|
Reference in New Issue
Block a user