aboutsummaryrefslogtreecommitdiff
path: root/qtmips_machine/alu.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'qtmips_machine/alu.cpp')
-rw-r--r--qtmips_machine/alu.cpp12
1 files changed, 7 insertions, 5 deletions
diff --git a/qtmips_machine/alu.cpp b/qtmips_machine/alu.cpp
index 83c94bd..3889b44 100644
--- a/qtmips_machine/alu.cpp
+++ b/qtmips_machine/alu.cpp
@@ -253,13 +253,15 @@ std::uint32_t machine::alu_operate(enum AluOp operation, std::uint32_t s,
return alu_op_clz(s);
case ALU_OP_CLO:
return alu_op_clz(~s);
- case ALU_OP_PASS_T: // Pass s argument without change for JAL
+ case ALU_OP_PASS_T: // Pass s argument without change for JAL
return t;
case ALU_OP_BREAK:
- return 0;
- case ALU_OP_SYSCALL:
- return 0;
- case ALU_OP_RDHWR:
+ case ALU_OP_SYSCALL:
+ case ALU_OP_RDHWR:
+ case ALU_OP_MTC0:
+ case ALU_OP_MFC0:
+ case ALU_OP_MFMC0:
+ case ALU_OP_ERET:
return 0;
default:
throw QTMIPS_EXCEPTION(UnsupportedAluOperation, "Unknown ALU operation", QString::number(operation, 16));