dynarmic: Reschedule on every service call or interrupt

This commit is contained in:
merry
2022-04-15 16:17:26 +01:00
parent 8ae43a1be9
commit 0a13230c1c
2 changed files with 6 additions and 16 deletions

View File

@@ -227,14 +227,9 @@ std::shared_ptr<Dynarmic::A32::Jit> ARM_Dynarmic_32::MakeJit(Common::PageTable*
}
void ARM_Dynarmic_32::Run() {
while (true) {
const auto hr = jit->Run();
if (Has(hr, svc_call)) {
Kernel::Svc::Call(system, svc_swi);
}
if (Has(hr, break_loop) || !uses_wall_clock) {
break;
}
const auto hr = jit->Run();
if (Has(hr, svc_call)) {
Kernel::Svc::Call(system, svc_swi);
}
}

View File

@@ -288,14 +288,9 @@ std::shared_ptr<Dynarmic::A64::Jit> ARM_Dynarmic_64::MakeJit(Common::PageTable*
}
void ARM_Dynarmic_64::Run() {
while (true) {
const auto hr = jit->Run();
if (Has(hr, svc_call)) {
Kernel::Svc::Call(system, svc_swi);
}
if (Has(hr, break_loop) || !uses_wall_clock) {
break;
}
const auto hr = jit->Run();
if (Has(hr, svc_call)) {
Kernel::Svc::Call(system, svc_swi);
}
}