Fix MSRs on the IBM 386/486 CPUs

Also give the IBM 386SLC 'isibm486' as it is believed to identify as a 486 to software.
This commit is contained in:
nerd73
2020-07-02 20:34:18 -06:00
parent a9e0dd247a
commit 064acae3fc

View File

@@ -369,8 +369,8 @@ cpu_set(void)
is8086 = (cpu_s->cpu_type > CPU_8088); is8086 = (cpu_s->cpu_type > CPU_8088);
is286 = (cpu_s->cpu_type >= CPU_286); is286 = (cpu_s->cpu_type >= CPU_286);
is386 = (cpu_s->cpu_type >= CPU_386SX); is386 = (cpu_s->cpu_type >= CPU_386SX);
israpidcad = (cpu_s->cpu_type == CPU_RAPIDCAD); israpidcad = (cpu_s->cpu_type == CPU_RAPIDCAD);
isibm486 = (cpu_s->cpu_type == CPU_IBM486SLC) || (cpu_s->cpu_type == CPU_IBM486BL); isibm486 = (cpu_s->cpu_type == CPU_IBM386SLC) || (cpu_s->cpu_type == CPU_IBM486SLC) || (cpu_s->cpu_type == CPU_IBM486BL);
is486 = (cpu_s->cpu_type >= CPU_i486SX) || (cpu_s->cpu_type == CPU_486SLC || cpu_s->cpu_type == CPU_486DLC || cpu_s->cpu_type == CPU_RAPIDCAD); is486 = (cpu_s->cpu_type >= CPU_i486SX) || (cpu_s->cpu_type == CPU_486SLC || cpu_s->cpu_type == CPU_486DLC || cpu_s->cpu_type == CPU_RAPIDCAD);
is486sx = (cpu_s->cpu_type >= CPU_i486SX) && (cpu_s->cpu_type < CPU_i486SX2); is486sx = (cpu_s->cpu_type >= CPU_i486SX) && (cpu_s->cpu_type < CPU_i486SX2);
is486sx2 = (cpu_s->cpu_type >= CPU_i486SX2) && (cpu_s->cpu_type < CPU_i486DX); is486sx2 = (cpu_s->cpu_type >= CPU_i486SX2) && (cpu_s->cpu_type < CPU_i486DX);
@@ -627,7 +627,8 @@ cpu_set(void)
x86_setopcodes(ops_386, ops_ibm486_0f, dynarec_ops_386, dynarec_ops_ibm486_0f); x86_setopcodes(ops_386, ops_ibm486_0f, dynarec_ops_386, dynarec_ops_ibm486_0f);
#else #else
x86_setopcodes(ops_386, ops_ibm486_0f); x86_setopcodes(ops_386, ops_ibm486_0f);
#endif #endif
cpu_features = CPU_FEATURE_MSR;
case CPU_386SX: case CPU_386SX:
timing_rr = 2; /*register dest - register src*/ timing_rr = 2; /*register dest - register src*/
timing_rm = 6; /*register dest - memory src*/ timing_rm = 6; /*register dest - memory src*/
@@ -665,6 +666,7 @@ cpu_set(void)
#else #else
x86_setopcodes(ops_386, ops_ibm486_0f); x86_setopcodes(ops_386, ops_ibm486_0f);
#endif #endif
cpu_features = CPU_FEATURE_MSR;
case CPU_386DX: case CPU_386DX:
if (fpu_type == FPU_287) /*In case we get Deskpro 386 emulation*/ if (fpu_type == FPU_287) /*In case we get Deskpro 386 emulation*/
{ {