mirror of
https://github.com/hedge-dev/XenonRecomp.git
synced 2025-07-23 05:23:59 +00:00
Rebrand to XenonRecomp.
This commit is contained in:
35
XenonUtils/disasm.h
Normal file
35
XenonUtils/disasm.h
Normal file
@@ -0,0 +1,35 @@
|
||||
#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);
|
||||
}
|
Reference in New Issue
Block a user