mirror of
https://github.com/ran-j/PS2Recomp.git
synced 2026-09-26 08:51:05 -04:00
Feature/agressive recompiler (#146)
* feat: added guestBranchKind enum to categorize branch types feat: added missingFunctionPolicy enum to define behaviors for missing function scenarios refactor: added handle guest branches and report missing functions feat lookupFunction to utilize new dispatch logic and improve error handling for unregistered functions * fix: fix test conflict * feat: added debug sound driver logs * feat: emmiter for return * feat: added recompiler reporter feat: added strict diagnostics flag for heavy debug calls * feat: staticc table insted of hashmap for runtime * feat: back file to ignore * feat: explode code across helpers and classes * feat: update codegen test feat: better guest nop check * feat: fix link problem on linux * feat: fix Segmentation fault * feat: added recompile replace for DMA and MMIO feat: added a clean memory helpers feat: use memory helpers across the project feat: fix ucrt on msvc * feat: undo messup merge
This commit is contained in:
@@ -23,6 +23,7 @@
|
||||
#include <algorithm>
|
||||
#include <cstring>
|
||||
#include <unordered_set>
|
||||
#include <utility>
|
||||
#include <unordered_map>
|
||||
#include <iostream>
|
||||
#include <cctype>
|
||||
@@ -209,11 +210,27 @@ namespace ps2recomp
|
||||
return emitter.emit();
|
||||
}
|
||||
|
||||
std::string CodeGenerator::handleBranchDelaySlots(
|
||||
const Instruction &branchInst,
|
||||
const Instruction &delaySlot,
|
||||
const Function &function,
|
||||
const AnalysisResult &analysisResult,
|
||||
std::string delaySlotOverride)
|
||||
{
|
||||
ControlFlowEmitter emitter(*this, branchInst, delaySlot, function, analysisResult, std::move(delaySlotOverride));
|
||||
return emitter.emit();
|
||||
}
|
||||
|
||||
CodeGenerator::~CodeGenerator() = default;
|
||||
|
||||
std::string CodeGenerator::translateInstruction(const Instruction &inst)
|
||||
{
|
||||
return InstructionTranslator(*this).translate(inst);
|
||||
return InstructionTranslator(*this).translate(inst, {});
|
||||
}
|
||||
|
||||
std::string CodeGenerator::translateInstruction(const Instruction &inst, const MemoryAccessHint &memoryHint)
|
||||
{
|
||||
return InstructionTranslator(*this).translate(inst, memoryHint);
|
||||
}
|
||||
|
||||
std::string CodeGenerator::translateSpecialInstruction(const Instruction &inst)
|
||||
|
||||
Reference in New Issue
Block a user