#pragma once #include "Emu/CPU/CPUDecoder.h" #include "PPCInstrTable.h" class PPCDecoder : public CPUDecoder { public: virtual void Decode(const u32 code)=0; virtual u8 DecodeMemory(const u64 address); virtual ~PPCDecoder() = default; }; template static InstrList<(1 << (CodeField::size)), TO>* new_list(const CodeField& func, InstrCaller* error_func = nullptr) { return new InstrList<(1 << (CodeField::size)), TO>(func, error_func); } template static InstrList<(1 << (CodeField::size)), TO>* new_list(InstrList* parent, int opcode, const CodeField& func, InstrCaller* error_func = nullptr) { return connect_list(parent, new InstrList<(1 << (CodeField::size)), TO>(func, error_func), opcode); } template static InstrList<(1 << (CodeField::size)), TO>* new_list(InstrList* parent, const CodeField& func, InstrCaller* error_func = nullptr) { return connect_list(parent, new InstrList<(1 << (CodeField::size)), TO>(func, error_func)); }