2012-11-15 00:39:56 +01:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#include "Emu/Cell/SPUOpcodes.h"
|
2013-07-03 18:17:16 +02:00
|
|
|
#include "Emu/Cell/PPCDecoder.h"
|
2013-11-19 11:30:58 +01:00
|
|
|
#include "Emu/Cell/SPUInstrTable.h"
|
2012-11-15 00:39:56 +01:00
|
|
|
|
2013-11-03 20:23:16 +01:00
|
|
|
class SPUDecoder : public PPCDecoder
|
2012-11-15 00:39:56 +01:00
|
|
|
{
|
2013-11-03 20:23:16 +01:00
|
|
|
SPUOpcodes* m_op;
|
2012-11-15 00:39:56 +01:00
|
|
|
|
|
|
|
|
public:
|
2013-11-03 20:23:16 +01:00
|
|
|
SPUDecoder(SPUOpcodes& op) : m_op(&op)
|
2012-11-15 00:39:56 +01:00
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
2013-11-03 20:23:16 +01:00
|
|
|
~SPUDecoder()
|
2012-11-15 00:39:56 +01:00
|
|
|
{
|
2013-07-04 16:20:36 +02:00
|
|
|
delete m_op;
|
2012-11-15 00:39:56 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
virtual void Decode(const u32 code)
|
|
|
|
|
{
|
2013-07-04 16:20:36 +02:00
|
|
|
(*SPU_instr::rrr_list)(m_op, code);
|
2012-11-15 00:39:56 +01:00
|
|
|
}
|
|
|
|
|
};
|