Пример #1
0
void SysCoreThread::_reset_stuff_as_needed()
{
	// Note that resetting recompilers along with the virtual machine is only really needed
	// because of changes to the TLB.  We don't actually support the TLB, however, so rec
	// resets aren't in fact *needed* ... yet.  But might as well, no harm.  --air

	GetVmMemory().CommitAll();

	if( m_resetVirtualMachine || m_resetRecompilers || m_resetProfilers )
	{
		SysClearExecutionCache();
		memBindConditionalHandlers();
		SetCPUState( EmuConfig.Cpu.sseMXCSR, EmuConfig.Cpu.sseVUMXCSR );

		m_resetRecompilers		= false;
		m_resetProfilers		= false;
	}

	if( m_resetVirtualMachine )
	{
		DoCpuReset();

		m_resetVirtualMachine	= false;
		m_resetVsyncTimers		= false;
	}

	if( m_resetVsyncTimers )
	{
		UpdateVSyncRate();
		frameLimitReset();

		m_resetVsyncTimers		= false;
	}
}
Пример #2
0
void SysCoreThread::UploadStateCopy( const VmStateBuffer& copy )
{
	if( !pxAssertDev( IsPaused(), "CoreThread is not paused; new VM state cannot be uploaded." ) ) return;

	SysClearExecutionCache();
	memLoadingState( copy ).FreezeAll();
	m_resetVirtualMachine = false;
}
Пример #3
0
void CBreakPoints::Update(u32 addr)
{
	bool resume = false;
	if (r5900Debug.isCpuPaused() == false)
	{
		r5900Debug.pauseCpu();
		resume = true;
	}
	
//	if (addr != 0)
//		Cpu->Clear(addr-4,8);
//	else
		SysClearExecutionCache();
	
	if (resume)
		r5900Debug.resumeCpu();

	wxGetApp().GetDisassemblyPtr()->update();
}
Пример #4
0
void SysCoreThread::Reset()
{
	ResetQuick();
	GetVmMemory().DecommitAll();
	SysClearExecutionCache();
}