From 064acae3fcae931032331cbffa5a00748042e4da Mon Sep 17 00:00:00 2001 From: nerd73 Date: Thu, 2 Jul 2020 20:34:18 -0600 Subject: [PATCH] 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. --- src/cpu/cpu.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/cpu/cpu.c b/src/cpu/cpu.c index 89c43063b..7cdd36ed4 100644 --- a/src/cpu/cpu.c +++ b/src/cpu/cpu.c @@ -369,8 +369,8 @@ cpu_set(void) is8086 = (cpu_s->cpu_type > CPU_8088); is286 = (cpu_s->cpu_type >= CPU_286); is386 = (cpu_s->cpu_type >= CPU_386SX); - israpidcad = (cpu_s->cpu_type == CPU_RAPIDCAD); - isibm486 = (cpu_s->cpu_type == CPU_IBM486SLC) || (cpu_s->cpu_type == CPU_IBM486BL); + israpidcad = (cpu_s->cpu_type == CPU_RAPIDCAD); + 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); 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); @@ -627,7 +627,8 @@ cpu_set(void) x86_setopcodes(ops_386, ops_ibm486_0f, dynarec_ops_386, dynarec_ops_ibm486_0f); #else x86_setopcodes(ops_386, ops_ibm486_0f); -#endif +#endif + cpu_features = CPU_FEATURE_MSR; case CPU_386SX: timing_rr = 2; /*register dest - register src*/ timing_rm = 6; /*register dest - memory src*/ @@ -665,6 +666,7 @@ cpu_set(void) #else x86_setopcodes(ops_386, ops_ibm486_0f); #endif + cpu_features = CPU_FEATURE_MSR; case CPU_386DX: if (fpu_type == FPU_287) /*In case we get Deskpro 386 emulation*/ {