mirror of
https://github.com/hedge-dev/XenonRecomp.git
synced 2025-07-23 05:23:59 +00:00
Initial Commit
This commit is contained in:
34
PowerUtils/disasm.h
Normal file
34
PowerUtils/disasm.h
Normal file
@@ -0,0 +1,34 @@
|
||||
#pragma once
|
||||
#include <capstone/capstone.h>
|
||||
|
||||
struct DisassemblerEngine
|
||||
{
|
||||
csh handle{};
|
||||
|
||||
DisassemblerEngine(const DisassemblerEngine&) = default;
|
||||
DisassemblerEngine& operator=(const DisassemblerEngine&) = delete;
|
||||
|
||||
DisassemblerEngine(cs_arch arch, cs_mode mode);
|
||||
~DisassemblerEngine();
|
||||
size_t Disassemble(const uint8_t* code, size_t size, uint64_t base, size_t count, cs_insn** instructions) const;
|
||||
void SetOption(cs_opt_type option, size_t value);
|
||||
|
||||
void SetDetail(bool value)
|
||||
{
|
||||
SetOption(CS_OPT_DETAIL, value);
|
||||
}
|
||||
};
|
||||
|
||||
namespace ppc
|
||||
{
|
||||
extern DisassemblerEngine gPPCBigEndianDisassembler;
|
||||
static size_t Disassemble(const uint8_t* code, size_t size, uint64_t base, size_t count, cs_insn** instructions)
|
||||
{
|
||||
return gPPCBigEndianDisassembler.Disassemble(code, size, base, count, instructions);
|
||||
}
|
||||
|
||||
static void SetDetail(bool value)
|
||||
{
|
||||
gPPCBigEndianDisassembler.SetDetail(value);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user