mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2026-04-20 16:17:38 +00:00
Move some sub-register index calculations to CodeGenRegisters.cpp
Create a new CodeGenRegBank class that will eventually hold all the code that computes the register structure from Records. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132849 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -108,7 +108,8 @@ std::string llvm::getQualifiedName(const Record *R) {
|
||||
|
||||
/// getTarget - Return the current instance of the Target class.
|
||||
///
|
||||
CodeGenTarget::CodeGenTarget(RecordKeeper &records) : Records(records) {
|
||||
CodeGenTarget::CodeGenTarget(RecordKeeper &records)
|
||||
: Records(records), RegBank(0) {
|
||||
std::vector<Record*> Targets = Records.getAllDerivedDefinitions("Target");
|
||||
if (Targets.size() == 0)
|
||||
throw std::string("ERROR: No 'Target' subclasses defined!");
|
||||
@@ -156,6 +157,12 @@ Record *CodeGenTarget::getAsmWriter() const {
|
||||
return LI[AsmWriterNum];
|
||||
}
|
||||
|
||||
CodeGenRegBank &CodeGenTarget::getRegBank() const {
|
||||
if (!RegBank)
|
||||
RegBank = new CodeGenRegBank(Records);
|
||||
return *RegBank;
|
||||
}
|
||||
|
||||
void CodeGenTarget::ReadRegisters() const {
|
||||
std::vector<Record*> Regs = Records.getAllDerivedDefinitions("Register");
|
||||
if (Regs.empty())
|
||||
@@ -169,18 +176,6 @@ void CodeGenTarget::ReadRegisters() const {
|
||||
Registers[i].EnumValue = i + 1;
|
||||
}
|
||||
|
||||
void CodeGenTarget::ReadSubRegIndices() const {
|
||||
SubRegIndices = Records.getAllDerivedDefinitions("SubRegIndex");
|
||||
std::sort(SubRegIndices.begin(), SubRegIndices.end(), LessRecord());
|
||||
}
|
||||
|
||||
Record *CodeGenTarget::createSubRegIndex(const std::string &Name) {
|
||||
Record *R = new Record(Name, SMLoc(), Records);
|
||||
Records.addDef(R);
|
||||
SubRegIndices.push_back(R);
|
||||
return R;
|
||||
}
|
||||
|
||||
void CodeGenTarget::ReadRegisterClasses() const {
|
||||
std::vector<Record*> RegClasses =
|
||||
Records.getAllDerivedDefinitions("RegisterClass");
|
||||
|
||||
Reference in New Issue
Block a user