From 7f8516d61d97ce1fbc3575185f0f2e78d1a455b1 Mon Sep 17 00:00:00 2001 From: Jason Turner Date: Fri, 21 May 2021 12:18:13 -0600 Subject: [PATCH] Add jmp instruction support --- src/6502-c++.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/6502-c++.cpp b/src/6502-c++.cpp index 19025ea..e668564 100644 --- a/src/6502-c++.cpp +++ b/src/6502-c++.cpp @@ -105,6 +105,8 @@ struct AVR : ASMLine inc, icall, + jmp, + ld, ldd, ldi, @@ -193,6 +195,7 @@ struct AVR : ASMLine if (o == "out") { return OpCode::out; } if (o == "inc") { return OpCode::inc; } if (o == "nop") { return OpCode::nop; } + if (o == "jmp") { return OpCode::jmp; } } } throw std::runtime_error(fmt::format("Unknown opcode: {}", o)); @@ -343,6 +346,8 @@ void translate_instruction(const Personality &personality, const auto o2_reg_num = translate_register_number(o2); switch (op) { + case AVR::OpCode::jmp: instructions.emplace_back(mos6502::OpCode::jmp, o1); return; + case AVR::OpCode::dec: instructions.emplace_back(mos6502::OpCode::dec, personality.get_register(o1_reg_num)); return; case AVR::OpCode::ldi: instructions.emplace_back(mos6502::OpCode::lda, Operand(o2.type, fixup_8bit_literal(o2.value)));