aboutsummaryrefslogtreecommitdiff
path: root/qtmips_machine/alu.h
diff options
context:
space:
mode:
Diffstat (limited to 'qtmips_machine/alu.h')
-rw-r--r--qtmips_machine/alu.h7
1 files changed, 5 insertions, 2 deletions
diff --git a/qtmips_machine/alu.h b/qtmips_machine/alu.h
index e14a903..97cb33e 100644
--- a/qtmips_machine/alu.h
+++ b/qtmips_machine/alu.h
@@ -46,6 +46,7 @@
namespace machine {
// Do ALU operation.
+// excause: Reported exception by given operation
// operation: This is function field from instruction or shifted opcode for immediate instructions
// s: Loaded from rs. Also calles as source.
// t: Loaded from rt or immediate field from instruction it self. Also called as target.
@@ -53,11 +54,13 @@ namespace machine {
// sz: This is value directly from instruction it self used in filed extract instructions
// regs: Registers used. We need direct access to lo and hi registers (those are not accessed from core it self but from alu directly
// Returned value is commonly saved to rt/rd or any other way passed trough core
-std::uint32_t alu_operate(enum AluOp operation, std::uint32_t s, std::uint32_t t,
- std::uint8_t sa, std::uint8_t sz, Registers *regs, bool &discard);
+std::uint32_t alu_operate(enum AluOp operation, std::uint32_t s,
+ std::uint32_t t, std::uint8_t sa, std::uint8_t sz,
+ Registers *regs, bool &discard, ExceptionCause &excause);
}
Q_DECLARE_METATYPE(machine::AluOp)
+Q_DECLARE_METATYPE(machine::ExceptionCause)
#endif // ALU_H