Modify RipesProcessor interface
MODIFY
src/processorhandler.cpp
src/processorhandler.cpp
@@ -211,7 +211,7 @@ void ProcessorHandler::stop() {
}
void ProcessorHandler::checkValidExecutionRange() const {
- const auto pc = m_currentProcessor->nextPcForStage(0);
+ const auto pc = m_currentProcessor->nextFetchedAddress();
if (!(m_validExecutionRange.first <= pc && pc < m_validExecutionRange.second)) {
m_currentProcessor->finalize();
}

MODIFY
src/processors/ripesprocessor.h
src/processors/ripesprocessor.h
@@ -62,11 +62,10 @@ public:
virtual QString stageName(unsigned int stageIndex) const = 0;
/**
- * @brief nextPcForStage
- * @param stageIndex
- * @return Next-state program counter for stage @param stageIndex
+ * @brief nextFetchedAddress
+ * @return Address will be fetched from instruction memory in the next clock cycle
*/
- virtual unsigned int nextPcForStage(unsigned int stageIndex) const = 0;
+ virtual unsigned int nextFetchedAddress() const = 0;
/**
* @brief stageInfo

MODIFY
src/processortab.cpp
src/processortab.cpp
@@ -68,6 +68,8 @@ void ProcessorTab::printToLog(const QString& text) {
}
void ProcessorTab::loadLayout(const Layout& layout) {
+ if (layout.name.isEmpty() || layout.file.isEmpty())
+ return; // Not a valid layout
// cereal expects the archive file to be present standalone on disk, and available through an ifstream. Copy the
// resource layout file temporarily, while loading the layout.
const auto& layoutResourceFilename = layout.file;

Modify RipesProcessor interface