rpcsx/rpcs3/Emu/Cell/PPCThread.cpp
DH 0b35be32a4 - Implemented ARM9Thread.
- Improved OpenGL Renderer.
- Improved RAW SPU mfc.
2013-11-03 21:23:16 +02:00

55 lines
1 KiB
C++

#include "stdafx.h"
#include "PPCThread.h"
#include "Gui/InterpreterDisAsm.h"
PPCThread* GetCurrentPPCThread()
{
CPUThread* thread = GetCurrentCPUThread();
if(!thread || (thread->GetType() != CPU_THREAD_PPU && thread->GetType() != CPU_THREAD_SPU && thread->GetType() != CPU_THREAD_RAW_SPU))
{
throw wxString("GetCurrentPPCThread: bad thread");
}
return (PPCThread*)thread;
}
PPCThread::PPCThread(CPUThreadType type)
: CPUThread(type)
, m_dec(nullptr)
{
}
PPCThread::~PPCThread()
{
Close();
}
void PPCThread::DoReset()
{
memset(m_args, 0, sizeof(u64) * 4);
}
void PPCThread::InitStack()
{
if(m_stack_addr) return;
if(m_stack_size == 0) m_stack_size = 0x10000;
m_stack_addr = Memory.StackMem.Alloc(Memory.AlignAddr(m_stack_size, 0x100));
m_stack_point = m_stack_addr + m_stack_size;
/*
m_stack_point += m_stack_size - 0x10;
m_stack_point &= -0x10;
Memory.Write64(m_stack_point, 0);
m_stack_point -= 0x60;
Memory.Write64(m_stack_point, m_stack_point + 0x60);
*/
}
void PPCThread::SetPc(const u64 pc)
{
PC = pc;
nPC = PC + 4;
}