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/jumpbranch.cpp | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 qtmips_machine/instructions/jumpbranch.cpp (limited to 'qtmips_machine/instructions/jumpbranch.cpp') diff --git a/qtmips_machine/instructions/jumpbranch.cpp b/qtmips_machine/instructions/jumpbranch.cpp new file mode 100644 index 0000000..2ede399 --- /dev/null +++ b/qtmips_machine/instructions/jumpbranch.cpp @@ -0,0 +1,30 @@ +#include "jumpbranch.h" + +InstructionJump::InstructionJump(bool link, std::uint32_t address) + : InstructionJ(address) { + this->link = link; +} + +std::vector InstructionJump::to_strs() { + std::vector str = this->InstructionJ::to_strs(); + if (link) + str[0] = "j"; + else + str[0] = "jal"; + return str; +} + +InstructionJumpRegister::InstructionJumpRegister(bool link, std::uint8_t rs) + : InstructionR(rs, 0, 0, 0) { + this->link = link; +} + +std::vector InstructionJumpRegister::to_strs() { + std::vector str = this->InstructionR::to_strs(); + str.erase(str.begin() + 2, str.end()); // Drop every field after rs + if (link) + str[0] = "j"; + else + str[0] = "jal"; + return str; +} -- cgit v1.2.3