chore: clean up code in one instruction

This commit is contained in:
Rekai Nyangadzayi Musuka 2021-03-23 18:21:59 -05:00
parent 1b7d778c1d
commit 501d93c37b
1 changed files with 11 additions and 12 deletions

View File

@ -198,22 +198,18 @@ impl Instruction {
} }
(LDTarget::Register(reg), LDTarget::ImmediateByte(n)) => { (LDTarget::Register(reg), LDTarget::ImmediateByte(n)) => {
// LD r[y], n | Store n in Register // LD r[y], n | Store n in Register
use InstrRegister::*;
match reg { match reg {
InstrRegister::IndirectHL => { A | B | C | D | E | H | L => {
cpu.set_register(reg.to_register(), n);
Cycles::new(8)
}
IndirectHL => {
let addr = cpu.register_pair(RegisterPair::HL); let addr = cpu.register_pair(RegisterPair::HL);
cpu.write_byte(addr, n); cpu.write_byte(addr, n);
Cycles::new(12) Cycles::new(12)
} }
InstrRegister::A
| InstrRegister::B
| InstrRegister::C
| InstrRegister::D
| InstrRegister::E
| InstrRegister::H
| InstrRegister::L => {
cpu.set_register(reg.to_register(), n);
Cycles::new(8)
}
} }
} }
(LDTarget::IndirectC, LDTarget::Register(InstrRegister::A)) => { (LDTarget::IndirectC, LDTarget::Register(InstrRegister::A)) => {
@ -376,11 +372,14 @@ impl Instruction {
let (cycles, sum) = match reg { let (cycles, sum) = match reg {
B | C | D | E | H | L | A => { B | C | D | E | H | L | A => {
let value = cpu.register(reg.to_register()); let value = cpu.register(reg.to_register());
let sum = Self::add_u8s(a_value, value, &mut flags); let sum = Self::add_u8s(a_value, value, &mut flags);
(Cycles::new(4), sum) (Cycles::new(4), sum)
} }
IndirectHL => { IndirectHL => {
let value = cpu.read_byte(cpu.register_pair(RegisterPair::HL)); let addr = cpu.register_pair(RegisterPair::HL);
let value = cpu.read_byte(addr);
let sum = Self::add_u8s(a_value, value, &mut flags); let sum = Self::add_u8s(a_value, value, &mut flags);
(Cycles::new(8), sum) (Cycles::new(8), sum)
} }