|
|
@ -113,12 +113,10 @@ void CpuManager::MultiCoreRunGuestLoop() {
|
|
|
|
|
|
|
|
|
|
|
|
while (true) {
|
|
|
|
while (true) {
|
|
|
|
auto* physical_core = &kernel.CurrentPhysicalCore();
|
|
|
|
auto* physical_core = &kernel.CurrentPhysicalCore();
|
|
|
|
system.EnterDynarmicProfile();
|
|
|
|
|
|
|
|
while (!physical_core->IsInterrupted()) {
|
|
|
|
while (!physical_core->IsInterrupted()) {
|
|
|
|
physical_core->Run();
|
|
|
|
physical_core->Run();
|
|
|
|
physical_core = &kernel.CurrentPhysicalCore();
|
|
|
|
physical_core = &kernel.CurrentPhysicalCore();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
system.ExitDynarmicProfile();
|
|
|
|
|
|
|
|
{
|
|
|
|
{
|
|
|
|
Kernel::KScopedDisableDispatch dd(kernel);
|
|
|
|
Kernel::KScopedDisableDispatch dd(kernel);
|
|
|
|
physical_core->ArmInterface().ClearExclusiveState();
|
|
|
|
physical_core->ArmInterface().ClearExclusiveState();
|
|
|
@ -166,12 +164,10 @@ void CpuManager::SingleCoreRunGuestLoop() {
|
|
|
|
auto& kernel = system.Kernel();
|
|
|
|
auto& kernel = system.Kernel();
|
|
|
|
while (true) {
|
|
|
|
while (true) {
|
|
|
|
auto* physical_core = &kernel.CurrentPhysicalCore();
|
|
|
|
auto* physical_core = &kernel.CurrentPhysicalCore();
|
|
|
|
system.EnterDynarmicProfile();
|
|
|
|
|
|
|
|
if (!physical_core->IsInterrupted()) {
|
|
|
|
if (!physical_core->IsInterrupted()) {
|
|
|
|
physical_core->Run();
|
|
|
|
physical_core->Run();
|
|
|
|
physical_core = &kernel.CurrentPhysicalCore();
|
|
|
|
physical_core = &kernel.CurrentPhysicalCore();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
system.ExitDynarmicProfile();
|
|
|
|
|
|
|
|
kernel.SetIsPhantomModeForSingleCore(true);
|
|
|
|
kernel.SetIsPhantomModeForSingleCore(true);
|
|
|
|
system.CoreTiming().Advance();
|
|
|
|
system.CoreTiming().Advance();
|
|
|
|
kernel.SetIsPhantomModeForSingleCore(false);
|
|
|
|
kernel.SetIsPhantomModeForSingleCore(false);
|
|
|
|