summaryrefslogtreecommitdiff
path: root/src/core/core_cpu.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/core_cpu.cpp')
-rw-r--r--src/core/core_cpu.cpp14
1 files changed, 3 insertions, 11 deletions
diff --git a/src/core/core_cpu.cpp b/src/core/core_cpu.cpp
index 21c410e34..6bd9639c6 100644
--- a/src/core/core_cpu.cpp
+++ b/src/core/core_cpu.cpp
@@ -85,24 +85,16 @@ void Cpu::RunLoop(bool tight_loop) {
85 // instead advance to the next event and try to yield to the next thread 85 // instead advance to the next event and try to yield to the next thread
86 if (Kernel::GetCurrentThread() == nullptr) { 86 if (Kernel::GetCurrentThread() == nullptr) {
87 LOG_TRACE(Core, "Core-{} idling", core_index); 87 LOG_TRACE(Core, "Core-{} idling", core_index);
88 88 core_timing.Idle();
89 if (IsMainCore()) { 89 core_timing.Advance();
90 // TODO(Subv): Only let CoreTiming idle if all 4 cores are idling.
91 core_timing.Idle();
92 core_timing.Advance();
93 }
94
95 PrepareReschedule(); 90 PrepareReschedule();
96 } else { 91 } else {
97 if (IsMainCore()) {
98 core_timing.Advance();
99 }
100
101 if (tight_loop) { 92 if (tight_loop) {
102 arm_interface->Run(); 93 arm_interface->Run();
103 } else { 94 } else {
104 arm_interface->Step(); 95 arm_interface->Step();
105 } 96 }
97 core_timing.Advance();
106 } 98 }
107 99
108 Reschedule(); 100 Reschedule();