|
|
@ -12,6 +12,7 @@ |
|
|
#include "common/logging/log.h"
|
|
|
#include "common/logging/log.h"
|
|
|
#include "common/microprofile.h"
|
|
|
#include "common/microprofile.h"
|
|
|
#include "common/settings.h"
|
|
|
#include "common/settings.h"
|
|
|
|
|
|
#include "common/settings_enums.h"
|
|
|
#include "common/string_util.h"
|
|
|
#include "common/string_util.h"
|
|
|
#include "core/arm/exclusive_monitor.h"
|
|
|
#include "core/arm/exclusive_monitor.h"
|
|
|
#include "core/core.h"
|
|
|
#include "core/core.h"
|
|
|
@ -140,7 +141,8 @@ struct System::Impl { |
|
|
device_memory = std::make_unique<Core::DeviceMemory>(); |
|
|
device_memory = std::make_unique<Core::DeviceMemory>(); |
|
|
|
|
|
|
|
|
is_multicore = Settings::values.use_multi_core.GetValue(); |
|
|
is_multicore = Settings::values.use_multi_core.GetValue(); |
|
|
extended_memory_layout = Settings::values.use_unsafe_extended_memory_layout.GetValue(); |
|
|
|
|
|
|
|
|
extended_memory_layout = |
|
|
|
|
|
Settings::values.memory_layout_mode.GetValue() != Settings::MemoryLayout::Memory_4Gb; |
|
|
|
|
|
|
|
|
core_timing.SetMulticore(is_multicore); |
|
|
core_timing.SetMulticore(is_multicore); |
|
|
core_timing.Initialize([&system]() { system.RegisterHostThread(); }); |
|
|
core_timing.Initialize([&system]() { system.RegisterHostThread(); }); |
|
|
@ -168,7 +170,8 @@ struct System::Impl { |
|
|
void ReinitializeIfNecessary(System& system) { |
|
|
void ReinitializeIfNecessary(System& system) { |
|
|
const bool must_reinitialize = |
|
|
const bool must_reinitialize = |
|
|
is_multicore != Settings::values.use_multi_core.GetValue() || |
|
|
is_multicore != Settings::values.use_multi_core.GetValue() || |
|
|
extended_memory_layout != Settings::values.use_unsafe_extended_memory_layout.GetValue(); |
|
|
|
|
|
|
|
|
extended_memory_layout != (Settings::values.memory_layout_mode.GetValue() != |
|
|
|
|
|
Settings::MemoryLayout::Memory_4Gb); |
|
|
|
|
|
|
|
|
if (!must_reinitialize) { |
|
|
if (!must_reinitialize) { |
|
|
return; |
|
|
return; |
|
|
@ -177,7 +180,8 @@ struct System::Impl { |
|
|
LOG_DEBUG(Kernel, "Re-initializing"); |
|
|
LOG_DEBUG(Kernel, "Re-initializing"); |
|
|
|
|
|
|
|
|
is_multicore = Settings::values.use_multi_core.GetValue(); |
|
|
is_multicore = Settings::values.use_multi_core.GetValue(); |
|
|
extended_memory_layout = Settings::values.use_unsafe_extended_memory_layout.GetValue(); |
|
|
|
|
|
|
|
|
extended_memory_layout = |
|
|
|
|
|
Settings::values.memory_layout_mode.GetValue() != Settings::MemoryLayout::Memory_4Gb; |
|
|
|
|
|
|
|
|
Initialize(system); |
|
|
Initialize(system); |
|
|
} |
|
|
} |
|
|
|