Created new register type for port registers

This commit is contained in:
Nav
2021-09-12 23:25:59 +01:00
parent b81b51790e
commit dca5b362b3
3 changed files with 6 additions and 2 deletions

View File

@@ -87,8 +87,10 @@ TargetRegistersPaneWidget::TargetRegistersPaneWidget(
auto registerDescriptorsByGroupName = std::map<std::string, std::set<TargetRegisterDescriptor>>(); auto registerDescriptorsByGroupName = std::map<std::string, std::set<TargetRegisterDescriptor>>();
for (const auto& registerDescriptor : registerDescriptors.at(TargetRegisterType::OTHER)) { for (const auto& registerDescriptor : registerDescriptors.at(TargetRegisterType::OTHER)) {
registerDescriptorsByGroupName[registerDescriptor.groupName.value_or("other")].insert(registerDescriptor); registerDescriptorsByGroupName[registerDescriptor.groupName.value_or("other")].insert(registerDescriptor);
auto groupName = registerDescriptor.groupName.value_or("other"); }
for (const auto& registerDescriptor : registerDescriptors.at(TargetRegisterType::PORT_REGISTER)) {
registerDescriptorsByGroupName[registerDescriptor.groupName.value_or("other")].insert(registerDescriptor);
} }
for (const auto& [groupName, registerDescriptors] : registerDescriptorsByGroupName) { for (const auto& [groupName, registerDescriptors] : registerDescriptorsByGroupName) {

View File

@@ -485,7 +485,8 @@ void TargetDescriptionFile::loadTargetRegisterDescriptors() {
} }
auto registerDescriptor = TargetRegisterDescriptor(); auto registerDescriptor = TargetRegisterDescriptor();
registerDescriptor.type = TargetRegisterType::OTHER; registerDescriptor.type = moduleName == "port"
? TargetRegisterType::PORT_REGISTER : TargetRegisterType::OTHER;
registerDescriptor.memoryType = TargetMemoryType::RAM; registerDescriptor.memoryType = TargetMemoryType::RAM;
registerDescriptor.name = moduleRegisterName; registerDescriptor.name = moduleRegisterName;
registerDescriptor.groupName = peripheralRegisterGroup.name; registerDescriptor.groupName = peripheralRegisterGroup.name;

View File

@@ -18,6 +18,7 @@ namespace Bloom::Targets
PROGRAM_COUNTER, PROGRAM_COUNTER,
STACK_POINTER, STACK_POINTER,
STATUS_REGISTER, STATUS_REGISTER,
PORT_REGISTER,
OTHER, OTHER,
}; };