mirror of
https://github.com/hedge-dev/XenonRecomp.git
synced 2025-05-18 16:02:28 +00:00
39 lines
1.1 KiB
C
39 lines
1.1 KiB
C
![]() |
#pragma once
|
||
|
|
||
|
struct RecompilerSwitchTable
|
||
|
{
|
||
|
uint32_t r;
|
||
|
std::vector<uint32_t> labels;
|
||
|
};
|
||
|
|
||
|
struct RecompilerConfig
|
||
|
{
|
||
|
std::string directoryPath;
|
||
|
std::string filePath;
|
||
|
std::string outDirectoryPath;
|
||
|
std::string switchTableFilePath;
|
||
|
std::unordered_map<uint32_t, RecompilerSwitchTable> switchTables;
|
||
|
bool skipLr = false;
|
||
|
bool ctrAsLocalVariable = false;
|
||
|
bool xerAsLocalVariable = false;
|
||
|
bool reservedRegisterAsLocalVariable = false;
|
||
|
bool skipMsr = false;
|
||
|
bool crRegistersAsLocalVariables = false;
|
||
|
bool nonArgumentRegistersAsLocalVariables = false;
|
||
|
bool nonVolatileRegistersAsLocalVariables = false;
|
||
|
uint32_t restGpr14Address = 0;
|
||
|
uint32_t saveGpr14Address = 0;
|
||
|
uint32_t restFpr14Address = 0;
|
||
|
uint32_t saveFpr14Address = 0;
|
||
|
uint32_t restVmx14Address = 0;
|
||
|
uint32_t saveVmx14Address = 0;
|
||
|
uint32_t restVmx64Address = 0;
|
||
|
uint32_t saveVmx64Address = 0;
|
||
|
uint32_t longJmpAddress = 0;
|
||
|
uint32_t setJmpAddress = 0;
|
||
|
std::unordered_map<uint32_t, uint32_t> functions;
|
||
|
std::unordered_map<uint32_t, uint32_t> invalidInstructions;
|
||
|
|
||
|
void Load(const std::string_view& configFilePath);
|
||
|
};
|