mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-07-07 23:41:26 +12:00
This commit is contained in:
parent
de070bf485
commit
a90b5cf37a
1998 changed files with 1034301 additions and 0 deletions
66
rpcs3/Emu/Cell/SPUThread.cpp
Normal file
66
rpcs3/Emu/Cell/SPUThread.cpp
Normal file
|
@ -0,0 +1,66 @@
|
|||
#include "stdafx.h"
|
||||
#include "Emu/Cell/SPUThread.h"
|
||||
#include "Emu/Cell/SPUDecoder.h"
|
||||
#include "Emu/Cell/SPUInterpreter.h"
|
||||
#include "Emu/Cell/SPUDisAsm.h"
|
||||
|
||||
SPUThread::SPUThread() : PPCThread(PPC_THREAD_SPU)
|
||||
{
|
||||
Reset();
|
||||
}
|
||||
|
||||
SPUThread::~SPUThread()
|
||||
{
|
||||
}
|
||||
|
||||
void SPUThread::DoReset()
|
||||
{
|
||||
//reset regs
|
||||
for(u32 i=0; i<128; ++i) GPR[i].Reset();
|
||||
|
||||
LSA = 0;
|
||||
}
|
||||
|
||||
void SPUThread::InitRegs()
|
||||
{
|
||||
GPR[1]._u64[0] = stack_point;
|
||||
}
|
||||
|
||||
u64 SPUThread::GetFreeStackSize() const
|
||||
{
|
||||
return (GetStackAddr() + GetStackSize()) - GPR[1]._u64[0];
|
||||
}
|
||||
|
||||
void SPUThread::DoRun()
|
||||
{
|
||||
switch(Ini.CPUDecoderMode.GetValue())
|
||||
{
|
||||
case 0:
|
||||
m_dec = new SPU_Decoder(*new SPU_DisAsm(*this));
|
||||
break;
|
||||
|
||||
case 1:
|
||||
case 2:
|
||||
m_dec = new SPU_Decoder(*new SPU_Interpreter(*this));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void SPUThread::DoResume()
|
||||
{
|
||||
}
|
||||
|
||||
void SPUThread::DoPause()
|
||||
{
|
||||
}
|
||||
|
||||
void SPUThread::DoStop()
|
||||
{
|
||||
delete m_dec;
|
||||
m_dec = 0;
|
||||
}
|
||||
|
||||
void SPUThread::DoCode(const s32 code)
|
||||
{
|
||||
m_dec->Decode(code);
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue