Fix CPU override feature

This commit is contained in:
RichardG867
2020-12-07 21:06:29 -03:00
parent 9cbf62b312
commit 5dce64a396
2 changed files with 39 additions and 37 deletions

View File

@@ -541,6 +541,7 @@ load_machine(void)
if (machine >= machine_count()) if (machine >= machine_count())
machine = machine_count() - 1; machine = machine_count() - 1;
cpu_override = config_get_int(cat, "cpu_override", 0);
cpu_f = NULL; cpu_f = NULL;
p = config_get_string(cat, "cpu_family", NULL); p = config_get_string(cat, "cpu_family", NULL);
if (p) { if (p) {
@@ -627,7 +628,6 @@ load_machine(void)
} }
} }
cpu_s = (CPU *) &cpu_f->cpus[cpu]; cpu_s = (CPU *) &cpu_f->cpus[cpu];
cpu_override = config_get_int(cat, "cpu_override", 0);
cpu_waitstates = config_get_int(cat, "cpu_waitstates", 0); cpu_waitstates = config_get_int(cat, "cpu_waitstates", 0);
@@ -1885,7 +1885,7 @@ save_machine(void)
continue; continue;
i = 0; i = 0;
do { while (cpu_legacy_table[c].tables[legacy_mfg][i].rspeed) {
legacy_table_entry = (cpu_legacy_table_t *) &cpu_legacy_table[c].tables[legacy_mfg][i]; legacy_table_entry = (cpu_legacy_table_t *) &cpu_legacy_table[c].tables[legacy_mfg][i];
/* Match the family name, speed and multiplier. */ /* Match the family name, speed and multiplier. */
@@ -1899,7 +1899,9 @@ save_machine(void)
closest_legacy_cpu = i; closest_legacy_cpu = i;
} }
} }
} while (cpu_legacy_table[c].tables[legacy_mfg][++i].family);
i++;
}
/* Use the closest speed match if no exact match was found. */ /* Use the closest speed match if no exact match was found. */
if ((legacy_cpu == -1) && (closest_legacy_cpu > -1)) { if ((legacy_cpu == -1) && (closest_legacy_cpu > -1)) {

View File

@@ -1611,40 +1611,40 @@ static const cpu_legacy_table_t cpus_Cyrix3[] = {
{NULL, 0, 0} {NULL, 0, 0}
}; };
static const cpu_legacy_table_t *cputables_8088[] = {cpus_8088}; static const cpu_legacy_table_t *cputables_8088[4] = {cpus_8088};
static const cpu_legacy_table_t *cputables_pcjr[] = {cpus_pcjr}; static const cpu_legacy_table_t *cputables_pcjr[4] = {cpus_pcjr};
static const cpu_legacy_table_t *cputables_europc[] = {cpus_europc}; static const cpu_legacy_table_t *cputables_europc[4] = {cpus_europc};
static const cpu_legacy_table_t *cputables_pc1512[] = {cpus_pc1512}; static const cpu_legacy_table_t *cputables_pc1512[4] = {cpus_pc1512};
static const cpu_legacy_table_t *cputables_8086[] = {cpus_8086}; static const cpu_legacy_table_t *cputables_8086[4] = {cpus_8086};
static const cpu_legacy_table_t *cputables_286[] = {cpus_286}; static const cpu_legacy_table_t *cputables_286[4] = {cpus_286};
static const cpu_legacy_table_t *cputables_ibmat[] = {cpus_ibmat}; static const cpu_legacy_table_t *cputables_ibmat[4] = {cpus_ibmat};
static const cpu_legacy_table_t *cputables_ps1_m2011[] = {cpus_ps1_m2011}; static const cpu_legacy_table_t *cputables_ps1_m2011[4] = {cpus_ps1_m2011};
static const cpu_legacy_table_t *cputables_ps2_m30_286_IBM486SLC[] = {cpus_ps2_m30_286, cpus_IBM486SLC}; static const cpu_legacy_table_t *cputables_ps2_m30_286_IBM486SLC[4] = {cpus_ps2_m30_286, cpus_IBM486SLC};
static const cpu_legacy_table_t *cputables_ibmxt286[] = {cpus_ibmxt286}; static const cpu_legacy_table_t *cputables_ibmxt286[4] = {cpus_ibmxt286};
static const cpu_legacy_table_t *cputables_i386SX_Am386SX_486SLC[] = {cpus_i386SX, cpus_Am386SX, cpus_486SLC}; static const cpu_legacy_table_t *cputables_i386SX_Am386SX_486SLC[4] = {cpus_i386SX, cpus_Am386SX, cpus_486SLC};
static const cpu_legacy_table_t *cputables_ALiM6117[] = {cpus_ALiM6117}; static const cpu_legacy_table_t *cputables_ALiM6117[4] = {cpus_ALiM6117};
static const cpu_legacy_table_t *cputables_i386SX_Am386SX_486SLC_IBM486SLC[] = {cpus_i386SX, cpus_Am386SX, cpus_486SLC, cpus_IBM486SLC}; static const cpu_legacy_table_t *cputables_i386SX_Am386SX_486SLC_IBM486SLC[4] = {cpus_i386SX, cpus_Am386SX, cpus_486SLC, cpus_IBM486SLC};
static const cpu_legacy_table_t *cputables_i386DX_Am386DX_486DLC[] = {cpus_i386DX, cpus_Am386DX, cpus_486DLC}; static const cpu_legacy_table_t *cputables_i386DX_Am386DX_486DLC[4] = {cpus_i386DX, cpus_Am386DX, cpus_486DLC};
static const cpu_legacy_table_t *cputables_i386DX_Am386DX_486DLC_IBM486BL[] = {cpus_i386DX, cpus_Am386DX, cpus_486DLC, cpus_IBM486BL}; static const cpu_legacy_table_t *cputables_i386DX_Am386DX_486DLC_IBM486BL[4] = {cpus_i386DX, cpus_Am386DX, cpus_486DLC, cpus_IBM486BL};
static const cpu_legacy_table_t *cputables_i486_Am486_Cx486[] = {cpus_i486, cpus_Am486, cpus_Cx486}; static const cpu_legacy_table_t *cputables_i486_Am486_Cx486[4] = {cpus_i486, cpus_Am486, cpus_Cx486};
static const cpu_legacy_table_t *cputables_i486S1_Am486S1_Cx486S1[] = {cpus_i486S1, cpus_Am486S1, cpus_Cx486S1}; static const cpu_legacy_table_t *cputables_i486S1_Am486S1_Cx486S1[4] = {cpus_i486S1, cpus_Am486S1, cpus_Cx486S1};
static const cpu_legacy_table_t *cputables_IBM486SLC[] = {cpus_IBM486SLC}; static const cpu_legacy_table_t *cputables_IBM486SLC[4] = {cpus_IBM486SLC};
static const cpu_legacy_table_t *cputables_i486_PC330[] = {cpus_i486_PC330}; static const cpu_legacy_table_t *cputables_i486_PC330[4] = {cpus_i486_PC330};
static const cpu_legacy_table_t *cputables_STPCDX[] = {cpus_STPCDX}; static const cpu_legacy_table_t *cputables_STPCDX[4] = {cpus_STPCDX};
static const cpu_legacy_table_t *cputables_STPCDX2[] = {cpus_STPCDX2}; static const cpu_legacy_table_t *cputables_STPCDX2[4] = {cpus_STPCDX2};
static const cpu_legacy_table_t *cputables_Pentium5V[] = {cpus_Pentium5V}; static const cpu_legacy_table_t *cputables_Pentium5V[4] = {cpus_Pentium5V};
static const cpu_legacy_table_t *cputables_PentiumS5_WinChip_K5[] = {cpus_PentiumS5, cpus_WinChip, cpus_K5}; static const cpu_legacy_table_t *cputables_PentiumS5_WinChip_K5[4] = {cpus_PentiumS5, cpus_WinChip, cpus_K5};
static const cpu_legacy_table_t *cputables_Pentium3V_WinChip_K5_6x863V[] = {cpus_Pentium3V, cpus_WinChip, cpus_K5, cpus_6x863V}; static const cpu_legacy_table_t *cputables_Pentium3V_WinChip_K5_6x863V[4] = {cpus_Pentium3V, cpus_WinChip, cpus_K5, cpus_6x863V};
static const cpu_legacy_table_t *cputables_Pentium3V_K5[] = {cpus_Pentium3V, cpus_K5}; static const cpu_legacy_table_t *cputables_Pentium3V_K5[4] = {cpus_Pentium3V, cpus_K5};
static const cpu_legacy_table_t *cputables_Pentium_WinChip_K56_6x86[] = {cpus_Pentium, cpus_WinChip, cpus_K56, cpus_6x86}; static const cpu_legacy_table_t *cputables_Pentium_WinChip_K56_6x86[4] = {cpus_Pentium, cpus_WinChip, cpus_K56, cpus_6x86};
static const cpu_legacy_table_t *cputables_Pentium_WinChip_SS7_K56_SS7_6x86SS7[] = {cpus_Pentium, cpus_WinChip_SS7, cpus_K56_SS7, cpus_6x86SS7}; static const cpu_legacy_table_t *cputables_Pentium_WinChip_SS7_K56_SS7_6x86SS7[4] = {cpus_Pentium, cpus_WinChip_SS7, cpus_K56_SS7, cpus_6x86SS7};
static const cpu_legacy_table_t *cputables_PentiumPro[] = {cpus_PentiumPro}; static const cpu_legacy_table_t *cputables_PentiumPro[4] = {cpus_PentiumPro};
static const cpu_legacy_table_t *cputables_PentiumII66[] = {cpus_PentiumII66}; static const cpu_legacy_table_t *cputables_PentiumII66[4] = {cpus_PentiumII66};
static const cpu_legacy_table_t *cputables_PentiumII_Celeron_Cyrix3[] = {cpus_PentiumII, cpus_Celeron, cpus_Cyrix3}; static const cpu_legacy_table_t *cputables_PentiumII_Celeron_Cyrix3[4] = {cpus_PentiumII, cpus_Celeron, cpus_Cyrix3};
static const cpu_legacy_table_t *cputables_Xeon[] = {cpus_Xeon}; static const cpu_legacy_table_t *cputables_Xeon[4] = {cpus_Xeon};
static const cpu_legacy_table_t *cputables_Celeron_Cyrix3[] = {cpus_Celeron, cpus_Cyrix3}; static const cpu_legacy_table_t *cputables_Celeron_Cyrix3[4] = {cpus_Celeron, cpus_Cyrix3};
static const cpu_legacy_table_t *cputables_Celeron[] = {cpus_Celeron}; static const cpu_legacy_table_t *cputables_Celeron[4] = {cpus_Celeron};
static const cpu_legacy_table_t *cputables_PentiumIID_Celeron[] = {cpus_PentiumIID, cpus_Celeron}; static const cpu_legacy_table_t *cputables_PentiumIID_Celeron[4] = {cpus_PentiumIID, cpus_Celeron};
const cpu_legacy_machine_t cpu_legacy_table[] = { const cpu_legacy_machine_t cpu_legacy_table[] = {
{"ibmpc", cputables_8088}, {"ibmpc", cputables_8088},