mirror of
				https://github.com/hedge-dev/XenonRecomp.git
				synced 2025-10-30 07:11:38 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			33 lines
		
	
	
	
		
			930 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			33 lines
		
	
	
	
		
			930 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);
 | 
						|
    }
 | 
						|
}
 |