2018-01-01 08:35:08 -05:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include "Common/Constants.hpp"
|
|
|
|
#include "Resources/Ee/Vpu/Vu/VuRegisters.hpp"
|
2018-07-28 10:33:56 -04:00
|
|
|
#include "Resources/Ee/Vpu/Vu/VuUnits.hpp"
|
2018-01-01 08:35:08 -05:00
|
|
|
|
|
|
|
/// RVu declares the collective VU structure.
|
|
|
|
class RVu
|
|
|
|
{
|
|
|
|
public:
|
2018-07-28 10:33:56 -04:00
|
|
|
RVu();
|
|
|
|
|
|
|
|
/// VU structure.
|
|
|
|
VuUnit_Vu0 unit_0;
|
|
|
|
VuUnit_Vu1 unit_1;
|
|
|
|
VuUnit_Base* units[Constants::EE::VPU::VU::NUMBER_VU_CORES];
|
2018-01-01 08:35:08 -05:00
|
|
|
|
2018-07-28 10:33:56 -04:00
|
|
|
/// Shared VU registers.
|
|
|
|
VuRegister_Fbrst fbrst;
|
2018-08-05 11:46:55 -04:00
|
|
|
|
|
|
|
template<class Archive>
|
|
|
|
void serialize(Archive & archive)
|
|
|
|
{
|
|
|
|
archive(
|
|
|
|
CEREAL_NVP(unit_0),
|
|
|
|
CEREAL_NVP(unit_1),
|
|
|
|
CEREAL_NVP(fbrst)
|
|
|
|
);
|
|
|
|
}
|
2018-01-01 08:35:08 -05:00
|
|
|
};
|