This commit is contained in:
Nav
2023-11-22 22:44:03 +00:00
parent ad1261ebc8
commit c4dc3c89f5
2 changed files with 10 additions and 10 deletions

View File

@@ -5,6 +5,8 @@
#include "src/Targets/RiscV/DebugModule/DebugModule.hpp" #include "src/Targets/RiscV/DebugModule/DebugModule.hpp"
namespace Targets::RiscV::DebugModule::Registers namespace Targets::RiscV::DebugModule::Registers
{
struct ControlRegister
{ {
enum HartSelectionMode: std::uint8_t enum HartSelectionMode: std::uint8_t
{ {
@@ -12,8 +14,6 @@ namespace Targets::RiscV::DebugModule::Registers
MULTI = 0x01, MULTI = 0x01,
}; };
struct ControlRegister
{
bool debugModuleActive:1 = false; bool debugModuleActive:1 = false;
bool ndmReset:1 = false; bool ndmReset:1 = false;
bool clearResetHaltRequest:1 = false; bool clearResetHaltRequest:1 = false;
@@ -30,7 +30,7 @@ namespace Targets::RiscV::DebugModule::Registers
ControlRegister() = default; ControlRegister() = default;
explicit ControlRegister(RegisterValue registerValue) constexpr explicit ControlRegister(RegisterValue registerValue)
: debugModuleActive(static_cast<bool>(registerValue & 0x01)) : debugModuleActive(static_cast<bool>(registerValue & 0x01))
, ndmReset(static_cast<bool>(registerValue & (0x01 << 1))) , ndmReset(static_cast<bool>(registerValue & (0x01 << 1)))
, clearResetHaltRequest(static_cast<bool>(registerValue & (0x01 << 2))) , clearResetHaltRequest(static_cast<bool>(registerValue & (0x01 << 2)))
@@ -46,7 +46,7 @@ namespace Targets::RiscV::DebugModule::Registers
, haltRequest(static_cast<bool>(registerValue & static_cast<std::uint32_t>(0x01 << 31))) , haltRequest(static_cast<bool>(registerValue & static_cast<std::uint32_t>(0x01 << 31)))
{} {}
RegisterValue value() const { constexpr RegisterValue value() const {
return RegisterValue{0} return RegisterValue{0}
| static_cast<RegisterValue>(this->debugModuleActive) | static_cast<RegisterValue>(this->debugModuleActive)
| static_cast<RegisterValue>(this->ndmReset) << 1 | static_cast<RegisterValue>(this->ndmReset) << 1

View File

@@ -29,7 +29,7 @@ namespace Targets::RiscV::DebugModule::Registers
bool stickyUnavailableBits:1 = false; bool stickyUnavailableBits:1 = false;
bool ndmResetPending:1 = false; bool ndmResetPending:1 = false;
explicit StatusRegister(RegisterValue registerValue) constexpr explicit StatusRegister(RegisterValue registerValue)
: version(static_cast<std::uint8_t>(registerValue & 0x0F)) : version(static_cast<std::uint8_t>(registerValue & 0x0F))
, validConfigStructurePointer(static_cast<bool>(registerValue & (0x01 << 4))) , validConfigStructurePointer(static_cast<bool>(registerValue & (0x01 << 4)))
, supportsResetHalt(static_cast<bool>(registerValue & (0x01 << 5))) , supportsResetHalt(static_cast<bool>(registerValue & (0x01 << 5)))
@@ -52,7 +52,7 @@ namespace Targets::RiscV::DebugModule::Registers
, ndmResetPending(static_cast<bool>(registerValue & (0x01 << 24))) , ndmResetPending(static_cast<bool>(registerValue & (0x01 << 24)))
{} {}
RegisterValue value() const { constexpr RegisterValue value() const {
return RegisterValue{0} return RegisterValue{0}
| static_cast<RegisterValue>(this->version) | static_cast<RegisterValue>(this->version)
| static_cast<RegisterValue>(this->validConfigStructurePointer) << 4 | static_cast<RegisterValue>(this->validConfigStructurePointer) << 4