summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/CommandProcessor.cpp
diff options
context:
space:
mode:
authorJosJuice <josjuice@gmail.com>2017-11-12 17:20:59 +0100
committerJosJuice <josjuice@gmail.com>2017-11-13 19:51:16 +0100
commit8ad5ea2ede6c19bf3ea9f0ad0ef9c65d7982378f (patch)
treeaa783125b9868c0e0a33537a5546daa1af011902 /Source/Core/VideoCommon/CommandProcessor.cpp
parent983b986303769c90248cfd2a33119b18fd612091 (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.cpp27
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);