100 [[nodiscard]] std::
string dump() const;
103 friend std::ostream &operator<<(std::ostream &os, const
RegisterFile &rf);
void restore(const std::array< RegisterValue, REGISTER_COUNT > &values) noexcept
Restores register values from a previously taken snapshot.
RegisterFile & operator=(const RegisterFile &)=delete
void setPc(RegisterValue value) noexcept
Sets the Program Counter.
void setSp(RegisterValue value) noexcept
Sets the Stack Pointer.
RegisterValue sp() const noexcept
Convenience accessor for the Stack Pointer.
RegisterValue pc() const noexcept
Convenience accessor for the Program Counter.
RegisterFile(RegisterFile &&) noexcept
std::array< RegisterValue, REGISTER_COUNT > snapshot() const noexcept
Returns a snapshot of all register values as an array. Used for context switching (save/restore).
RegisterValue get(Register reg) const noexcept
Gets the value of the specified register.
std::unique_ptr< Impl > impl_
void set(Register reg, RegisterValue value) noexcept
Sets the value of the specified register.
void reset() noexcept
Resets all registers to zero.
std::string dump() const
Returns a formatted string showing all register values.
RegisterFile(const RegisterFile &)=delete
Register
CPU register identifiers.
constexpr std::string_view registerName(Register reg) noexcept
Returns the human-readable name of a register (e.g., "R0", "PC", "SP").
constexpr std::uint8_t REGISTER_COUNT
Maximum number of CPU registers.
std::int32_t RegisterValue
Value stored in a CPU register.
Common type aliases, sentinel constants, and forward declarations used throughout the Contur 2 kernel...