diff options
| author | 2019-06-06 19:20:15 -0400 | |
|---|---|---|
| committer | 2019-06-06 19:20:15 -0400 | |
| commit | 9db119f8a2e5a4d877f00b9efb40e4a109c95ef7 (patch) | |
| tree | 9d30248278656913599b01dd0fc70a3b0e7e7e24 /src/core/loader/kip.cpp | |
| parent | game_list: Accept *.kip as a file extension of executables (diff) | |
| download | yuzu-9db119f8a2e5a4d877f00b9efb40e4a109c95ef7.tar.gz yuzu-9db119f8a2e5a4d877f00b9efb40e4a109c95ef7.tar.xz yuzu-9db119f8a2e5a4d877f00b9efb40e4a109c95ef7.zip | |
kernel_executable: Optimize BLZ decompression
Diffstat (limited to 'src/core/loader/kip.cpp')
| -rw-r--r-- | src/core/loader/kip.cpp | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/core/loader/kip.cpp b/src/core/loader/kip.cpp index 2efd14f04..70051c13a 100644 --- a/src/core/loader/kip.cpp +++ b/src/core/loader/kip.cpp | |||
| @@ -53,10 +53,14 @@ AppLoader::LoadResult AppLoader_KIP::Load(Kernel::Process& process) { | |||
| 53 | return {kip->GetStatus(), {}}; | 53 | return {kip->GetStatus(), {}}; |
| 54 | } | 54 | } |
| 55 | 55 | ||
| 56 | const auto address_space = | 56 | const auto get_kip_address_space_type = [](const auto& kip) { |
| 57 | kip->Is64Bit() ? (kip->Is39BitAddressSpace() ? FileSys::ProgramAddressSpaceType::Is39Bit | 57 | return kip.Is64Bit() |
| 58 | : FileSys::ProgramAddressSpaceType::Is36Bit) | 58 | ? (kip.Is39BitAddressSpace() ? FileSys::ProgramAddressSpaceType::Is39Bit |
| 59 | : FileSys::ProgramAddressSpaceType::Is32Bit; | 59 | : FileSys::ProgramAddressSpaceType::Is36Bit) |
| 60 | : FileSys::ProgramAddressSpaceType::Is32Bit; | ||
| 61 | }; | ||
| 62 | |||
| 63 | const auto address_space = get_kip_address_space_type(*kip); | ||
| 60 | 64 | ||
| 61 | FileSys::ProgramMetadata metadata; | 65 | FileSys::ProgramMetadata metadata; |
| 62 | metadata.LoadManual(kip->Is64Bit(), address_space, kip->GetMainThreadPriority(), | 66 | metadata.LoadManual(kip->Is64Bit(), address_space, kip->GetMainThreadPriority(), |