mirror of
https://github.com/lefticus/6502-cpp.git
synced 2024-12-21 10:30:35 +00:00
Add ror instruction
This commit is contained in:
parent
9e44438f1e
commit
6c0e5a660d
@ -125,6 +125,7 @@ struct AVR : ASMLine
|
|||||||
ret,
|
ret,
|
||||||
rjmp,
|
rjmp,
|
||||||
rol,
|
rol,
|
||||||
|
ror,
|
||||||
|
|
||||||
sbc,
|
sbc,
|
||||||
sbci,
|
sbci,
|
||||||
@ -152,6 +153,7 @@ struct AVR : ASMLine
|
|||||||
if (o == "mov") { return OpCode::mov; }
|
if (o == "mov") { return OpCode::mov; }
|
||||||
if (o == "lsl") { return OpCode::lsl; }
|
if (o == "lsl") { return OpCode::lsl; }
|
||||||
if (o == "rol") { return OpCode::rol; }
|
if (o == "rol") { return OpCode::rol; }
|
||||||
|
if (o == "ror") { return OpCode::ror; }
|
||||||
if (o == "rcall") { return OpCode::rcall; }
|
if (o == "rcall") { return OpCode::rcall; }
|
||||||
if (o == "ld") { return OpCode::ld; }
|
if (o == "ld") { return OpCode::ld; }
|
||||||
if (o == "sub") { return OpCode::sub; }
|
if (o == "sub") { return OpCode::sub; }
|
||||||
@ -350,6 +352,9 @@ void translate_instruction(const Personality &personality, std::vector<mos6502>
|
|||||||
case AVR::OpCode::rol:
|
case AVR::OpCode::rol:
|
||||||
instructions.emplace_back(mos6502::OpCode::rol, personality.get_register(o1_reg_num));
|
instructions.emplace_back(mos6502::OpCode::rol, personality.get_register(o1_reg_num));
|
||||||
return;
|
return;
|
||||||
|
case AVR::OpCode::ror:
|
||||||
|
instructions.emplace_back(mos6502::OpCode::ror, personality.get_register(o1_reg_num));
|
||||||
|
return;
|
||||||
case AVR::OpCode::rcall:
|
case AVR::OpCode::rcall:
|
||||||
if (o1.value != ".") {
|
if (o1.value != ".") {
|
||||||
instructions.emplace_back(mos6502::OpCode::jsr, o1);
|
instructions.emplace_back(mos6502::OpCode::jsr, o1);
|
||||||
@ -874,7 +879,7 @@ void run(const Personality &personality, std::istream &input)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
std::set<std::string> used_labels{ "main" };
|
std::set<std::string> used_labels{ "main", "__udivmodhi4", "__mulhi3"};
|
||||||
|
|
||||||
for (const auto &i : instructions) {
|
for (const auto &i : instructions) {
|
||||||
if (i.type == ASMLine::Type::Instruction) {
|
if (i.type == ASMLine::Type::Instruction) {
|
||||||
|
Loading…
Reference in New Issue
Block a user