mirror of
https://github.com/hedge-dev/XenonRecomp.git
synced 2025-04-19 10:51:18 +00:00
36 lines
1020 B
C++
36 lines
1020 B
C++
#pragma once
|
|
#include <dis-asm.h>
|
|
#include <ppc.h>
|
|
|
|
namespace ppc
|
|
{
|
|
struct DisassemblerEngine
|
|
{
|
|
disassemble_info info{};
|
|
DisassemblerEngine(const DisassemblerEngine&) = default;
|
|
DisassemblerEngine& operator=(const DisassemblerEngine&) = delete;
|
|
|
|
DisassemblerEngine(bfd_endian endian, const char* options);
|
|
~DisassemblerEngine() = default;
|
|
|
|
/**
|
|
* \return Numbers of bytes decoded
|
|
*/
|
|
int Disassemble(const void* code, size_t size, uint64_t base, ppc_insn& out);
|
|
};
|
|
|
|
thread_local extern DisassemblerEngine gBigEndianDisassembler;
|
|
|
|
static int Disassemble(const void* code, size_t size, uint64_t base, ppc_insn& out)
|
|
{
|
|
return gBigEndianDisassembler.Disassemble(code, size, base, out);
|
|
}
|
|
|
|
static int Disassemble(const void* code, uint64_t base, ppc_insn& out)
|
|
{
|
|
return Disassemble(code, 4, base, out);
|
|
}
|
|
|
|
static int Disassemble(const void* code, uint64_t base, ppc_insn* out, size_t nOut);
|
|
}
|