Add a check for missing switch cases.

This commit is contained in:
Skyth 2024-09-23 15:42:27 +03:00
parent 175c0de2ac
commit 989ed13d04
2 changed files with 9 additions and 0 deletions

View File

@ -1,5 +1,11 @@
#pragma once
// Workaround for the intellisense for some reason not seeing C++23 features
#ifdef __INTELLISENSE__
#undef __cplusplus
#define __cplusplus 202302L
#endif
#include <cassert>
#include <disasm.h>
#include <file.h>

View File

@ -1780,6 +1780,9 @@ bool Recompiler::Recompile(const Function& fn)
}
else
{
if (insn.opcode->id == PPC_INST_BCTR && (*(data - 1) == 0x07008038 || *(data - 1) == 0x00000060) && switchTable == switchTables.end())
std::println("Found a switch jump table at {:X} with no switch table entry present", base);
if (!Recompile(fn, base, insn, switchTable))
{
std::println("Unrecognized instruction at 0x{:X}: {}", base, insn.opcode->name);