aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--qtmips_machine/alu.cpp4
-rw-r--r--qtmips_machine/instruction.cpp4
2 files changed, 5 insertions, 3 deletions
diff --git a/qtmips_machine/alu.cpp b/qtmips_machine/alu.cpp
index 73c49e4..d6e7254 100644
--- a/qtmips_machine/alu.cpp
+++ b/qtmips_machine/alu.cpp
@@ -40,13 +40,13 @@ std::uint32_t alu_operate(enum AluOp operation, std::uint32_t s, std::uint32_t t
case ALU_OP_ADD:
if (s > (0xFFFFFFFF - t))
throw QTMIPS_EXCEPTION(Overflow, "ADD operation overflow/underflow", QString::number(s) + QString(" + ") + QString::number(t));
- __attribute__((fallthrough));
+ // Intentional falltrough
case ALU_OP_ADDU:
return s + t;
case ALU_OP_SUB:
if (s < t)
throw QTMIPS_EXCEPTION(Overflow, "SUB operation overflow/underflow", QString::number(s) + QString(" - ") + QString::number(t));
- __attribute__((fallthrough));
+ // Intentional falltrough
case ALU_OP_SUBU:
return s - t;
case ALU_OP_AND:
diff --git a/qtmips_machine/instruction.cpp b/qtmips_machine/instruction.cpp
index 4137fdd..b6abebc 100644
--- a/qtmips_machine/instruction.cpp
+++ b/qtmips_machine/instruction.cpp
@@ -67,7 +67,9 @@ Instruction::Instruction(std::uint8_t opcode, std::uint32_t address) {
this->dt |= address;
}
-Instruction::Instruction(const Instruction &i) : Instruction(i.data()) { }
+Instruction::Instruction(const Instruction &i) {
+ this->dt = i.data();
+}
QString Instruction::to_str() {
if (this->opcode() >= sizeof(instruction_map))