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