emu: modrm8 r8 decode had HI/LO registers backwards

This commit is contained in:
2021-04-03 01:14:51 -07:00
parent e1c7370aa2
commit 67b5b7a615

View File

@@ -271,14 +271,14 @@ macro_rules! step {
(@r8 $cookie:tt, $cpu:expr, $bus:expr, $prefix:tt, ($modrm_val:ident, $modrm:tt, $modrm16:tt, $modrm8:tt)) => { (@r8 $cookie:tt, $cpu:expr, $bus:expr, $prefix:tt, ($modrm_val:ident, $modrm:tt, $modrm16:tt, $modrm8:tt)) => {
// TODO: Should these also be passed into the macro like the modrm specs? // TODO: Should these also be passed into the macro like the modrm specs?
match $modrm_val >> 3 & 0x7 { match $modrm_val >> 3 & 0x7 {
0 => step!(@arg $cookie, RegHi { reg: &$cpu.a } ), 0 => step!(@arg $cookie, RegLo { reg: &$cpu.a } ),
1 => step!(@arg $cookie, RegHi { reg: &$cpu.c } ), 1 => step!(@arg $cookie, RegLo { reg: &$cpu.c } ),
2 => step!(@arg $cookie, RegHi { reg: &$cpu.d } ), 2 => step!(@arg $cookie, RegLo { reg: &$cpu.d } ),
3 => step!(@arg $cookie, RegHi { reg: &$cpu.b } ), 3 => step!(@arg $cookie, RegLo { reg: &$cpu.b } ),
4 => step!(@arg $cookie, RegLo { reg: &$cpu.a } ), 4 => step!(@arg $cookie, RegHi { reg: &$cpu.a } ),
5 => step!(@arg $cookie, RegLo { reg: &$cpu.c } ), 5 => step!(@arg $cookie, RegHi { reg: &$cpu.c } ),
6 => step!(@arg $cookie, RegLo { reg: &$cpu.d } ), 6 => step!(@arg $cookie, RegHi { reg: &$cpu.d } ),
7 => step!(@arg $cookie, RegLo { reg: &$cpu.b } ), 7 => step!(@arg $cookie, RegHi { reg: &$cpu.b } ),
_ => unreachable!() _ => unreachable!()
}; };
}; };