Fix signal value being treated as a signed integer value
This resulted in errors with branching operations that were more than 2 bits long, resulting in the 3-bit wide signal being interpreted as a negative number.
MODIFY
src/pipeline.cpp
src/pipeline.cpp
@@ -624,7 +624,7 @@ void Pipeline::propagateCombinational() {
mux_forwardB_ID.update();
// Compare read register values and '&' with s_branch control signal
- switch ((CompOp)(int)s_CompOp) {
+ switch ((CompOp)(uint32_t)s_CompOp) {
case BEQ: {
s_branchTaken = s_Branch && ((uint32_t)mux_forwardA_ID == (uint32_t)mux_forwardB_ID);
break;

Fix signal value being treated as a signed integer value

This resulted in errors with branching operations that were more than 2 bits long, resulting in the 3-bit wide signal being interpreted as a negative number.