mirror of
https://github.com/hedge-dev/XenonRecomp.git
synced 2025-07-22 21:17:14 +00:00
Remove hardcoded recompiler, load TOML file for configuration.
This commit is contained in:
38
PowerRecomp/recompiler_config.h
Normal file
38
PowerRecomp/recompiler_config.h
Normal file
@@ -0,0 +1,38 @@
|
||||
#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);
|
||||
};
|
Reference in New Issue
Block a user