emu: accept cycle cost for modrm spec (and ignore for now)

This commit is contained in:
2021-03-12 04:10:15 -08:00
parent c372a96b7c
commit adb7e672d9

View File

@@ -114,7 +114,7 @@ macro_rules! step {
};
(@modrm16 $cookie:tt, $cpu:expr, $bus:expr, $prefix:tt,
($modrm_val:ident, { $($val:literal => $($args:ident = $argrhs:tt),*),*$(,)? }, $modrm8:tt)) => { {
($modrm_val:ident, { $($val:literal => $($args:ident = $argrhs:tt),* / $mode:ident $cycles:literal),*$(,)? }, $modrm8:tt)) => { {
let modrm_val = $modrm_val & !0x38;
match modrm_val {
$( $val => step!(@push $cookie, ($($args = $argrhs)* ) ) ),*,
@@ -123,7 +123,7 @@ macro_rules! step {
} };
(@modrm8 $cookie:tt, $cpu:expr, $bus:expr, $prefix:tt,
($modrm_val:ident, $modrm16:tt, { $($val:literal => $($args:ident = $argrhs:tt),*),*$(,)? } )) => { {
($modrm_val:ident, $modrm16:tt, { $($val:literal => $($args:ident = $argrhs:tt),* / $mode:ident $cycles:literal),*$(,)? } )) => { {
let modrm_val = $modrm_val & !0x38;
match modrm_val {
$( $val => step!(@push $cookie, ($($args = $argrhs)* ) ) ),*,
@@ -295,24 +295,24 @@ impl i8088 {
0xE8 => call[reg=ip, regval=ss, reg=sp, mem, rel16] / 23,
},
modrm16: {
0xC0 => reg=a,
0xC1 => reg=c,
0xC2 => reg=d,
0xC3 => reg=b,
0xC4 => reg=sp,
0xC5 => reg=bp,
0xC6 => reg=si,
0xC7 => reg=di,
0xC0 => reg=a / R 0,
0xC1 => reg=c / R 0,
0xC2 => reg=d / R 0,
0xC3 => reg=b / R 0,
0xC4 => reg=sp / R 0,
0xC5 => reg=bp / R 0,
0xC6 => reg=si / R 0,
0xC7 => reg=di / R 0,
},
modrm8: {
0xC0 => reglo=a,
0xC1 => reglo=c,
0xC2 => reglo=d,
0xC3 => reglo=b,
0xC4 => reghi=a,
0xC5 => reghi=c,
0xC6 => reghi=d,
0xC7 => reghi=b,
0xC0 => reglo=a / R 0,
0xC1 => reglo=c / R 0,
0xC2 => reglo=d / R 0,
0xC3 => reglo=b / R 0,
0xC4 => reghi=a / R 0,
0xC5 => reghi=c / R 0,
0xC6 => reghi=d / R 0,
0xC7 => reghi=b / R 0,
})
}
}