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; } }
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; }
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(); }
void SysCoreThread::Reset() { ResetQuick(); GetVmMemory().DecommitAll(); SysClearExecutionCache(); }