From 6c0e5a660dce80cf2fcff0908b97294aea349a1f Mon Sep 17 00:00:00 2001 From: Jason Turner Date: Tue, 11 May 2021 20:44:38 -0600 Subject: [PATCH] Add ror instruction --- src/6502-c++.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/6502-c++.cpp b/src/6502-c++.cpp index f06546e..f3c5510 100644 --- a/src/6502-c++.cpp +++ b/src/6502-c++.cpp @@ -125,6 +125,7 @@ struct AVR : ASMLine ret, rjmp, rol, + ror, sbc, sbci, @@ -152,6 +153,7 @@ struct AVR : ASMLine if (o == "mov") { return OpCode::mov; } if (o == "lsl") { return OpCode::lsl; } if (o == "rol") { return OpCode::rol; } + if (o == "ror") { return OpCode::ror; } if (o == "rcall") { return OpCode::rcall; } if (o == "ld") { return OpCode::ld; } if (o == "sub") { return OpCode::sub; } @@ -350,6 +352,9 @@ void translate_instruction(const Personality &personality, std::vector case AVR::OpCode::rol: instructions.emplace_back(mos6502::OpCode::rol, personality.get_register(o1_reg_num)); return; + case AVR::OpCode::ror: + instructions.emplace_back(mos6502::OpCode::ror, personality.get_register(o1_reg_num)); + return; case AVR::OpCode::rcall: if (o1.value != ".") { instructions.emplace_back(mos6502::OpCode::jsr, o1); @@ -874,7 +879,7 @@ void run(const Personality &personality, std::istream &input) } } - std::set used_labels{ "main" }; + std::set used_labels{ "main", "__udivmodhi4", "__mulhi3"}; for (const auto &i : instructions) { if (i.type == ASMLine::Type::Instruction) {