diff options
author | Pavel Pisa <pisa@cmp.felk.cvut.cz> | 2019-02-04 18:13:58 +0100 |
---|---|---|
committer | Pavel Pisa <pisa@cmp.felk.cvut.cz> | 2019-02-04 18:13:58 +0100 |
commit | 40580e24e7a7b2e774d001878dc493216e75b936 (patch) | |
tree | d5fd0e60a09c35111fabe9d8975a8cb2a087b431 /qtmips_machine/alu.h | |
parent | 36492497ba7096fb20c417941d426e01870d213d (diff) | |
download | qtmips-40580e24e7a7b2e774d001878dc493216e75b936.tar.gz qtmips-40580e24e7a7b2e774d001878dc493216e75b936.tar.bz2 qtmips-40580e24e7a7b2e774d001878dc493216e75b936.zip |
Unified instructions table and access type move to machinedefs.h .
This allows to specify requirement for RS and RD on instruction
basis even for T_R / ALU instructions.
Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
Diffstat (limited to 'qtmips_machine/alu.h')
-rw-r--r-- | qtmips_machine/alu.h | 37 |
1 files changed, 2 insertions, 35 deletions
diff --git a/qtmips_machine/alu.h b/qtmips_machine/alu.h index bc12666..efadbe0 100644 --- a/qtmips_machine/alu.h +++ b/qtmips_machine/alu.h @@ -41,42 +41,9 @@ #include <QObject> #include <registers.h> -namespace machine { +#include "machinedefs.h" -enum AluOp : std::uint8_t { - ALU_OP_SLL = 0, - ALU_OP_SRL = 2, - ALU_OP_SRA, - ALU_OP_SLLV, - ALU_OP_SRLV = 6, - ALU_OP_SRAV, - ALU_OP_JR, - ALU_OP_JALR, - ALU_OP_MOVZ, - ALU_OP_MOVN, - ALU_OP_BREAK = 13, - ALU_OP_MFHI = 16, - ALU_OP_MTHI, - ALU_OP_MFLO, - ALU_OP_MTLO, - ALU_OP_MULT = 24, - ALU_OP_MULTU = 25, - ALU_OP_DIV = 26, - ALU_OP_DIVU = 27, - ALU_OP_ADD = 32, - ALU_OP_ADDU, - ALU_OP_SUB, - ALU_OP_SUBU, - ALU_OP_AND, - ALU_OP_OR, - ALU_OP_XOR, - ALU_OP_NOR, - ALU_OP_SLT = 42, - ALU_OP_SLTU, - ALU_OP_LUI = 64, // We don't care about exact index for this one - ALU_OP_PASS_S, // Pass s argument without change for JAL - ALU_OP_LAST // First impossible operation (just to be sure that we don't overflow) -}; +namespace machine { // Do ALU operation. // operation: This is function field from instruction or shifted opcode for immediate instructions |