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-07-04 16:20:36 +02:00
|
|
|
#include "Emu/Cell/SPUInstrtable.h"
|
2012-11-15 00:39:56 +01:00
|
|
|
|
2013-07-03 18:17:16 +02:00
|
|
|
class SPU_Decoder : public PPC_Decoder
|
2012-11-15 00:39:56 +01:00
|
|
|
{
|
2013-07-04 16:20:36 +02:00
|
|
|
SPU_Opcodes* m_op;
|
2012-11-15 00:39:56 +01:00
|
|
|
|
|
|
|
|
public:
|
2013-07-04 16:20:36 +02:00
|
|
|
SPU_Decoder(SPU_Opcodes& op) : m_op(&op)
|
2012-11-15 00:39:56 +01:00
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
~SPU_Decoder()
|
|
|
|
|
{
|
2013-07-04 16:20:36 +02:00
|
|
|
m_op->Exit();
|
|
|
|
|
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
|
|
|
}
|
|
|
|
|
};
|