From 9cf92379d5fcf0076c25dae0935daab446c992cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karel=20Ko=C4=8D=C3=AD?= Date: Wed, 30 Aug 2017 21:37:53 +0200 Subject: Initial commit Adding work done so far. --- qtmips_machine/instructions/arithmetic.h | 46 ++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 qtmips_machine/instructions/arithmetic.h (limited to 'qtmips_machine/instructions/arithmetic.h') diff --git a/qtmips_machine/instructions/arithmetic.h b/qtmips_machine/instructions/arithmetic.h new file mode 100644 index 0000000..29f89d2 --- /dev/null +++ b/qtmips_machine/instructions/arithmetic.h @@ -0,0 +1,46 @@ +#ifndef ARITHMETIC_H +#define ARITHMETIC_H + +#include "instruction.h" + +enum InstructionArithmeticT { + IAT_ADD, // Add + IAT_ADDU, // Add unsigned + IAT_SUB, // Subtract + IAT_SUBU, // Subtract unsigned + IAT_AND, + IAT_OR, + IAT_XOR, + IAT_NOR, + IAT_SLT, // set on less than + IAT_SLTU, // set on less than unsigned +}; + +class InstructionArithmetic : public InstructionR { +public: + InstructionArithmetic(enum InstructionArithmeticT type, std::uint8_t rs, std::uint8_t rd, std::uint8_t rt); + std::vector to_strs(); +private: + enum InstructionArithmeticT type; +}; + +enum InstructionArithmeticImmediateT { + IAT_ADDI, + IAT_ADDIU, + IAT_ANDI, + IAT_ORI, + IAT_XORI, + IAT_SLTI, + IAT_SLTIU, + IAT_LUI +}; + +class InstructionArithmeticImmediate : public InstructionI { +public: + InstructionArithmeticImmediate(enum InstructionArithmeticImmediateT type, std::uint8_t rs, std::uint8_t rt, std::uint16_t value); + std::vector to_strs(); +private: + enum InstructionArithmeticImmediateT type; +}; + +#endif // ARITHMETIC_H -- cgit v1.2.3