Moved the softfloat-enabled ops back to the cpu directory.

Made softfloat always enabled, thus dynarec disabled, only for the IBM PS/2 model 70 type 4, in preparation for its comeback to main use.
This commit is contained in:
TC1995
2023-04-30 18:18:12 +02:00
parent 7a53e1de45
commit 7c372ca789
10 changed files with 19 additions and 7 deletions

View File

@@ -505,6 +505,13 @@ load_machine(void)
cpu_use_dynarec = !!ini_section_get_int(cat, "cpu_use_dynarec", 0);
fpu_softfloat = !!ini_section_get_int(cat, "fpu_softfloat", 0);
/*The IBM PS/2 model 70 type 4 BIOS does heavy tests to the FPU in 80-bit precision mode, requiring softfloat
otherwise it would always throw error 12903 on POST, so always disable dynarec and enable softfloat for this
machine only.*/
if (!strcmp(machines[machine].internal_name, "ibmps2_m70_type4")) {
cpu_use_dynarec = 0;
fpu_softfloat = 1;
}
p = ini_section_get_string(cat, "time_sync", NULL);
if (p != NULL) {

View File

@@ -481,13 +481,14 @@ typedef union {
# define FP_TAG_VALID_N cpu_state.tag[(cpu_state.TOP + 1) & 7] &= ~TAG_UINT64
#endif
#include "softfloat/x87_ops_arith.h"
#include "softfloat/x87_ops_compare.h"
#include "softfloat/x87_ops_const.h"
#include "softfloat/x87_ops_load_store.h"
#include "softfloat/x87_ops_misc.h"
#include "softfloat/x87_ops_trans.h"
#include "softfloat/x87_ops_other.h"
#include "x87_ops_sf_arith.h"
#include "x87_ops_sf_compare.h"
#include "x87_ops_sf_const.h"
#include "x87_ops_sf_load_store.h"
#include "x87_ops_sf_misc.h"
#include "x87_ops_sf_trans.h"
#include "x87_ops_sf.h"
#include "x87_ops_arith.h"
#include "x87_ops_misc.h"
#include "x87_ops_loadstore.h"

View File

@@ -106,6 +106,10 @@ SettingsMachine::save()
fpu_type = ui->comboBoxFPU->currentData().toInt();
cpu_use_dynarec = ui->checkBoxDynamicRecompiler->isChecked() ? 1 : 0;
fpu_softfloat = (ui->checkBoxFPUSoftfloat->isChecked() && !cpu_use_dynarec) ? 1 : 0;
if (!strcmp(machines[machine].internal_name, "ibmps2_m70_type4")) {
cpu_use_dynarec = 0;
fpu_softfloat = 1;
}
int64_t temp_mem_size;
if (machine_get_ram_granularity(machine) < 1024) {