From 40580e24e7a7b2e774d001878dc493216e75b936 Mon Sep 17 00:00:00 2001 From: Pavel Pisa Date: Mon, 4 Feb 2019 18:13:58 +0100 Subject: 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 --- qtmips_machine/alu.h | 37 ++----------------------------------- 1 file changed, 2 insertions(+), 35 deletions(-) (limited to 'qtmips_machine/alu.h') 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 #include -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 -- cgit v1.2.3