summaryrefslogtreecommitdiffstats
path: root/src/core/loader
diff options
context:
space:
mode:
authorGPUCode <geoster3d@gmail.com>2023-11-18 15:10:39 +0100
committert895 <clombardo169@gmail.com>2023-11-25 06:47:28 +0100
commit8fab363237083a8130a7b2a023cd9c5dd83f8f4f (patch)
treefa94b90be48a5debe83b414119da5b8419dd463c /src/core/loader
parentarm: Implement native code execution backend (diff)
downloadyuzu-8fab363237083a8130a7b2a023cd9c5dd83f8f4f.tar
yuzu-8fab363237083a8130a7b2a023cd9c5dd83f8f4f.tar.gz
yuzu-8fab363237083a8130a7b2a023cd9c5dd83f8f4f.tar.bz2
yuzu-8fab363237083a8130a7b2a023cd9c5dd83f8f4f.tar.lz
yuzu-8fab363237083a8130a7b2a023cd9c5dd83f8f4f.tar.xz
yuzu-8fab363237083a8130a7b2a023cd9c5dd83f8f4f.tar.zst
yuzu-8fab363237083a8130a7b2a023cd9c5dd83f8f4f.zip
Diffstat (limited to 'src/core/loader')
-rw-r--r--src/core/loader/deconstructed_rom_directory.cpp6
-rw-r--r--src/core/loader/nro.cpp2
2 files changed, 5 insertions, 3 deletions
diff --git a/src/core/loader/deconstructed_rom_directory.cpp b/src/core/loader/deconstructed_rom_directory.cpp
index e7fc8f438..31c00f0a3 100644
--- a/src/core/loader/deconstructed_rom_directory.cpp
+++ b/src/core/loader/deconstructed_rom_directory.cpp
@@ -129,8 +129,10 @@ AppLoader_DeconstructedRomDirectory::LoadResult AppLoader_DeconstructedRomDirect
}
metadata.Print();
- // Enable NCE only for 64-bit programs.
- Settings::SetNceEnabled(metadata.Is64BitProgram());
+ // Enable NCE only for programs with 39-bit address space.
+ const bool is_39bit =
+ metadata.GetAddressSpaceType() == FileSys::ProgramAddressSpaceType::Is39Bit;
+ Settings::SetNceEnabled(is_39bit);
const std::array static_modules = {"rtld", "main", "subsdk0", "subsdk1", "subsdk2",
"subsdk3", "subsdk4", "subsdk5", "subsdk6", "subsdk7",
diff --git a/src/core/loader/nro.cpp b/src/core/loader/nro.cpp
index 49cf90317..76ff38041 100644
--- a/src/core/loader/nro.cpp
+++ b/src/core/loader/nro.cpp
@@ -199,6 +199,7 @@ static bool LoadNroImpl(Core::System& system, Kernel::KProcess& process,
codeset.DataSegment().size += bss_size;
program_image.resize(static_cast<u32>(program_image.size()) + bss_size);
+ size_t image_size = program_image.size();
#ifdef ARCHITECTURE_arm64
const auto& code = codeset.CodeSegment();
@@ -208,7 +209,6 @@ static bool LoadNroImpl(Core::System& system, Kernel::KProcess& process,
// Create NCE patcher
Core::NCE::Patcher patch{};
- size_t image_size = program_image.size();
if (Settings::IsNceEnabled()) {
// Patch SVCs and MRS calls in the guest code