diff options
| author | JosJuice <josjuice@gmail.com> | 2017-11-12 17:20:59 +0100 |
|---|---|---|
| committer | JosJuice <josjuice@gmail.com> | 2017-11-13 19:51:16 +0100 |
| commit | 8ad5ea2ede6c19bf3ea9f0ad0ef9c65d7982378f (patch) | |
| tree | aa783125b9868c0e0a33537a5546daa1af011902 /Source/Core/VideoCommon/CommandProcessor.cpp | |
| parent | 983b986303769c90248cfd2a33119b18fd612091 (diff) | |
Call Do for every member of SCPFifoStruct individually
We need this because VS currently doesn't consider
std::is_trivially_copyable<typename
std::remove_volatile<SCPFifoStruct>::type>::value
to be true and because no compiler should consider it
to be true if we replace the volatiles with atomics.
Diffstat (limited to 'Source/Core/VideoCommon/CommandProcessor.cpp')
| -rw-r--r-- | Source/Core/VideoCommon/CommandProcessor.cpp | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/Source/Core/VideoCommon/CommandProcessor.cpp b/Source/Core/VideoCommon/CommandProcessor.cpp index 04ede7c412..424435a178 100644 --- a/Source/Core/VideoCommon/CommandProcessor.cpp +++ b/Source/Core/VideoCommon/CommandProcessor.cpp @@ -50,6 +50,31 @@ static void UpdateInterrupts_Wrapper(u64 userdata, s64 cyclesLate) UpdateInterrupts(userdata); } +void SCPFifoStruct::DoState(PointerWrap& p) +{ + p.Do(CPBase); + p.Do(CPEnd); + p.Do(CPHiWatermark); + p.Do(CPLoWatermark); + p.Do(CPReadWriteDistance); + p.Do(CPWritePointer); + p.Do(CPReadPointer); + p.Do(CPBreakpoint); + p.Do(SafeCPReadPointer); + + p.Do(bFF_GPLinkEnable); + p.Do(bFF_GPReadEnable); + p.Do(bFF_BPEnable); + p.Do(bFF_BPInt); + p.Do(bFF_Breakpoint); + + p.Do(bFF_LoWatermarkInt); + p.Do(bFF_HiWatermarkInt); + + p.Do(bFF_LoWatermark); + p.Do(bFF_HiWatermark); +} + void DoState(PointerWrap& p) { p.DoPOD(m_CPStatusReg); @@ -60,7 +85,7 @@ void DoState(PointerWrap& p) p.Do(m_bboxright); p.Do(m_bboxbottom); p.Do(m_tokenReg); - p.Do(fifo); + fifo.DoState(p); p.Do(s_interrupt_set); p.Do(s_interrupt_waiting); |
