[hle/kernel] mark invalid SVC paths as unreachable (#3023)

Should improve performance of SVC by a very, very tiny margin. Codegen seems to be better from the exclusion of all domains beyond >=0x92

Signed-off-by: lizzie lizzie@eden-emu.dev

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3023
Reviewed-by: crueter <crueter@eden-emu.dev>
Reviewed-by: CamilleLaVey <camillelavey99@gmail.com>
Co-authored-by: lizzie <lizzie@eden-emu.dev>
Co-committed-by: lizzie <lizzie@eden-emu.dev>
This commit is contained in:
lizzie 2025-12-04 07:31:30 +01:00 committed by crueter
parent 7a98ee4ead
commit 09f03f5640
No known key found for this signature in database
GPG key ID: 425ACD2D4830EBC6
2 changed files with 3 additions and 10 deletions

View file

@ -2364,9 +2364,7 @@ static void Call32(Core::System& system, u32 imm, std::span<uint64_t, 8> args) {
case SvcId::CallSecureMonitor: return SvcWrap_CallSecureMonitor64From32(system, args);
case SvcId::MapInsecureMemory: return SvcWrap_MapInsecureMemory64From32(system, args);
case SvcId::UnmapInsecureMemory: return SvcWrap_UnmapInsecureMemory64From32(system, args);
default:
LOG_CRITICAL(Kernel_SVC, "Unknown SVC {:x}!", imm);
break;
default: UNREACHABLE_MSG("Unhandled SVC {:#x}!", imm);
}
}
@ -2495,9 +2493,7 @@ static void Call64(Core::System& system, u32 imm, std::span<uint64_t, 8> args) {
case SvcId::CallSecureMonitor: return SvcWrap_CallSecureMonitor64(system, args);
case SvcId::MapInsecureMemory: return SvcWrap_MapInsecureMemory64(system, args);
case SvcId::UnmapInsecureMemory: return SvcWrap_UnmapInsecureMemory64(system, args);
default:
LOG_CRITICAL(Kernel_SVC, "Unknown SVC {:x}!", imm);
break;
default: UNREACHABLE_MSG("Unhandled SVC {:#x}!", imm);
}
}
void Call(Core::System& system, u32 imm) {