From f79a189a128f9c9d52b9b8b1af838fc732140e16 Mon Sep 17 00:00:00 2001 From: Jason Turner Date: Sat, 8 May 2021 16:01:25 -0600 Subject: [PATCH] Fix lookup of X,Y,Z registers --- src/6502-c++.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/6502-c++.cpp b/src/6502-c++.cpp index 739aba4..c0f4672 100644 --- a/src/6502-c++.cpp +++ b/src/6502-c++.cpp @@ -304,11 +304,11 @@ void translate_instruction(const Personality &personality, std::vector return; case AVR::OpCode::ld: { if (o2.value == "Z" || o2.value == "X" || o2.value == "Y") { - indirect_load(instructions, personality.get_register(o2.value[0]).value, personality.get_register(o1_reg_num).value); + indirect_load(instructions, personality.get_register(AVR::get_register_number(o2.value[0])).value, personality.get_register(o1_reg_num).value); return; } if (o2.value == "Z+" || o2.value == "X+" || o2.value == "Y+") { - indirect_load(instructions, personality.get_register(o2.value[0]).value, personality.get_register(o1_reg_num).value); + indirect_load(instructions, personality.get_register(AVR::get_register_number(o2.value[0])).value, personality.get_register(o1_reg_num).value); increment_16_bit(personality, instructions, AVR::get_register_number(o2.value[0])); return; } @@ -348,11 +348,11 @@ void translate_instruction(const Personality &personality, std::vector } case AVR::OpCode::st: { if (o1.value == "Z" || o1.value == "Y" || o1.value == "X") { - indirect_store(instructions, personality.get_register(o2_reg_num).value, personality.get_register(o1.value[0]).value); + indirect_store(instructions, personality.get_register(o2_reg_num).value, personality.get_register(AVR::get_register_number(o1.value[0])).value); return; } if (o1.value == "Z+" || o1.value == "Y+" || o1.value == "X+") { - indirect_store(instructions, personality.get_register(o2_reg_num).value, personality.get_register(o1.value[0]).value); + indirect_store(instructions, personality.get_register(o2_reg_num).value, personality.get_register(AVR::get_register_number(o1.value[0])).value); increment_16_bit(personality, instructions, AVR::get_register_number(o1.value[0])); return; }