need to figure out why n64-systemtest loops indefinitely at some address that appears to be valid (i think it's me not invalidating the cache properly)

This commit is contained in:
2026-06-03 16:03:24 +02:00
parent 204f0e13b0
commit 12e81e73e8
37 changed files with 305 additions and 3355 deletions
+17 -14
View File
@@ -6,21 +6,17 @@
CPUSettings::CPUSettings() {
auto selectedCpuType = Options::GetInstance().GetValue<std::string>("cpu", "type");
if (selectedCpuType == "jit") {
selectedCpuTypeIndex = 2;
} else if (selectedCpuType == "cached_interpreter") {
if (selectedCpuType == "cached_interpreter") {
selectedCpuTypeIndex = 1;
} else {
selectedCpuTypeIndex = 0;
}
idleSkip = Options::GetInstance().GetValue<bool>("cpu", "idleSkip");
}
void CPUSettings::render() {
const char *items[] = {"Interpreter", "Cached Interpreter",
#ifdef KAIZEN_JIT_ENABLED
"Dynamic Recompiler"
#endif
};
const char *items[] = {"Interpreter", "Cached Interpreter"};
const char *combo_preview_value = items[selectedCpuTypeIndex];
if (ImGui::BeginCombo("CPU Type", combo_preview_value)) {
@@ -38,16 +34,23 @@ void CPUSettings::render() {
ImGui::EndCombo();
}
bool showIdleSkipping = std::string(items[selectedCpuTypeIndex]) == "Cached Interpreter";
if (showIdleSkipping)
if (ImGui::Checkbox("Idle skipping", &idleSkip))
modified = true;
if (modified) {
if (selectedCpuTypeIndex == 0) {
Options::GetInstance().SetValue<std::string>("cpu", "type", "interpreter");
n64::Core::GetInstance().cpuType = n64::Core::Interpreted;
} else if (selectedCpuTypeIndex == 1) {
Options::GetInstance().SetValue<std::string>("cpu", "type", "cached_interpreter");
n64::Core::GetInstance().cpuType = n64::Core::CachedInterpreter;
idleSkip = false;
Options::GetInstance().SetValue<bool>("cpu", "idleSkip", idleSkip);
n64::Core::GetInstance().cpuType = n64::Core::PlainInterpreter;
n64::Core::GetInstance().idleSkip = idleSkip;
} else {
Options::GetInstance().SetValue<std::string>("cpu", "type", "jit");
n64::Core::GetInstance().cpuType = n64::Core::DynamicRecompiler;
Options::GetInstance().SetValue<std::string>("cpu", "type", "cached_interpreter");
Options::GetInstance().SetValue<bool>("cpu", "idleSkip", idleSkip);
n64::Core::GetInstance().cpuType = n64::Core::CachedInterpreter;
n64::Core::GetInstance().idleSkip = idleSkip;
}
}
}