From dca5b362b34b473c0e7f99cf450b985de24f23fc Mon Sep 17 00:00:00 2001 From: Nav Date: Sun, 12 Sep 2021 23:25:59 +0100 Subject: [PATCH] Created new register type for port registers --- .../Widgets/TargetRegistersPane/TargetRegistersPaneWidget.cpp | 4 +++- .../AVR/AVR8/TargetDescription/TargetDescriptionFile.cpp | 3 ++- src/Targets/TargetRegister.hpp | 1 + 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/Insight/UserInterfaces/InsightWindow/Widgets/TargetRegistersPane/TargetRegistersPaneWidget.cpp b/src/Insight/UserInterfaces/InsightWindow/Widgets/TargetRegistersPane/TargetRegistersPaneWidget.cpp index 3665670f..3972bf93 100644 --- a/src/Insight/UserInterfaces/InsightWindow/Widgets/TargetRegistersPane/TargetRegistersPaneWidget.cpp +++ b/src/Insight/UserInterfaces/InsightWindow/Widgets/TargetRegistersPane/TargetRegistersPaneWidget.cpp @@ -87,8 +87,10 @@ TargetRegistersPaneWidget::TargetRegistersPaneWidget( auto registerDescriptorsByGroupName = std::map>(); for (const auto& registerDescriptor : registerDescriptors.at(TargetRegisterType::OTHER)) { 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) { diff --git a/src/Targets/Microchip/AVR/AVR8/TargetDescription/TargetDescriptionFile.cpp b/src/Targets/Microchip/AVR/AVR8/TargetDescription/TargetDescriptionFile.cpp index e35de972..d991aa78 100644 --- a/src/Targets/Microchip/AVR/AVR8/TargetDescription/TargetDescriptionFile.cpp +++ b/src/Targets/Microchip/AVR/AVR8/TargetDescription/TargetDescriptionFile.cpp @@ -485,7 +485,8 @@ void TargetDescriptionFile::loadTargetRegisterDescriptors() { } auto registerDescriptor = TargetRegisterDescriptor(); - registerDescriptor.type = TargetRegisterType::OTHER; + registerDescriptor.type = moduleName == "port" + ? TargetRegisterType::PORT_REGISTER : TargetRegisterType::OTHER; registerDescriptor.memoryType = TargetMemoryType::RAM; registerDescriptor.name = moduleRegisterName; registerDescriptor.groupName = peripheralRegisterGroup.name; diff --git a/src/Targets/TargetRegister.hpp b/src/Targets/TargetRegister.hpp index 33eb9449..d587c391 100644 --- a/src/Targets/TargetRegister.hpp +++ b/src/Targets/TargetRegister.hpp @@ -18,6 +18,7 @@ namespace Bloom::Targets PROGRAM_COUNTER, STACK_POINTER, STATUS_REGISTER, + PORT_REGISTER, OTHER, };