Set syscall exiting state before clocking circuit
MODIFY
src/processors/RISC-V/rv5s/rv5s.h
src/processors/RISC-V/rv5s/rv5s.h
@@ -413,9 +413,9 @@ public:
}
void reset() override {
+ ecallChecker->setSysCallExiting(false);
RipesProcessor::reset();
m_fcntr.reset();
- ecallChecker->setSysCallExiting(false);
m_syscallExitCycle = -1;
}

MODIFY
src/processors/RISC-V/rv_ecallchecker.h
src/processors/RISC-V/rv_ecallchecker.h
@@ -27,6 +27,11 @@ public:
}
void setSysCallSignal(Gallant::Signal0<>* sig) { m_signal = sig; }
+
+ /**
+ * @brief setSysCallExiting
+ * @note: Must be called _before_ propagating/clocking the circuit, to reflect the change onto the output signal.
+ */
void setSysCallExiting(bool state) { m_syscallExit = state; }
bool isSysCallExiting() const { return m_syscallExit; }

Set syscall exiting state before clocking circuit