From 155bd09fd033b36ada2654b4837a3933f6b99d98 Mon Sep 17 00:00:00 2001 From: Eladash Date: Wed, 6 Jul 2022 17:52:31 +0300 Subject: [PATCH] Savestates: Cleanup v128 usage It's compatible with bitwise serialization so it is faster to load/save it this way. --- rpcs3/Emu/Cell/PPUThread.cpp | 5 +---- rpcs3/Emu/Cell/SPUThread.cpp | 26 ++++---------------------- 2 files changed, 5 insertions(+), 26 deletions(-) diff --git a/rpcs3/Emu/Cell/PPUThread.cpp b/rpcs3/Emu/Cell/PPUThread.cpp index 2b825d06e1..2e2a30bac8 100644 --- a/rpcs3/Emu/Cell/PPUThread.cpp +++ b/rpcs3/Emu/Cell/PPUThread.cpp @@ -1577,10 +1577,7 @@ bool ppu_thread::savable() const void ppu_thread::serialize_common(utils::serial& ar) { - ar(gpr, fpr, cr, fpscr.bits, lr, ctr, vrsave, cia, xer, sat, nj, prio, optional_savestate_state); - - for (v128& reg : vr) - ar(reg._bytes); + ar(gpr, fpr, cr, fpscr.bits, lr, ctr, vrsave, cia, xer, sat, nj, prio, optional_savestate_state, vr); if (optional_savestate_state->data.empty()) { diff --git a/rpcs3/Emu/Cell/SPUThread.cpp b/rpcs3/Emu/Cell/SPUThread.cpp index cf9f591252..b11a2e4b91 100644 --- a/rpcs3/Emu/Cell/SPUThread.cpp +++ b/rpcs3/Emu/Cell/SPUThread.cpp @@ -1699,28 +1699,10 @@ spu_thread::spu_thread(lv2_spu_group* group, u32 index, std::string_view name, u void spu_thread::serialize_common(utils::serial& ar) { - for (v128& reg : gpr) - ar(reg._bytes); - - ar(pc, ch_mfc_cmd, mfc_size, mfc_barrier, mfc_fence, mfc_prxy_cmd, mfc_prxy_mask, mfc_prxy_write_state.all - , srr0 - , ch_tag_upd - , ch_tag_mask - , ch_tag_stat.data - , ch_stall_mask - , ch_stall_stat.data - , ch_atomic_stat.data - , ch_out_mbox.data - , ch_out_intr_mbox.data - , snr_config - - , ch_snr1.data - , ch_snr2.data - , ch_events.raw().all - , interrupts_enabled - , run_ctrl - , exit_status.data - , status_npc.raw().status); + ar(gpr, pc, ch_mfc_cmd, mfc_size, mfc_barrier, mfc_fence, mfc_prxy_cmd, mfc_prxy_mask, mfc_prxy_write_state.all + , srr0, ch_tag_upd, ch_tag_mask, ch_tag_stat.data, ch_stall_mask, ch_stall_stat.data, ch_atomic_stat.data + , ch_out_mbox.data, ch_out_intr_mbox.data, snr_config, ch_snr1.data, ch_snr2.data, ch_events.raw().all, interrupts_enabled + , run_ctrl, exit_status.data, status_npc.raw().status); if (GET_SERIALIZATION_VERSION(spu) != 1u) {