mirror of
https://github.com/Lime3DS/Lime3DS
synced 2024-10-30 03:37:52 +00:00
Updated codebase formatting to be compliant with Clang 18
This commit is contained in:
parent
2906a3e6a5
commit
5f41a173fa
139 changed files with 1016 additions and 1015 deletions
|
@ -42,7 +42,9 @@ struct CaptureSession final {
|
||||||
|
|
||||||
#define MEMBER(type, name, func) \
|
#define MEMBER(type, name, func) \
|
||||||
struct type##Deleter { \
|
struct type##Deleter { \
|
||||||
void operator()(type* ptr) { type##_##func(ptr); } \
|
void operator()(type* ptr) { \
|
||||||
|
type##_##func(ptr); \
|
||||||
|
} \
|
||||||
}; \
|
}; \
|
||||||
std::unique_ptr<type, type##Deleter> name
|
std::unique_ptr<type, type##Deleter> name
|
||||||
|
|
||||||
|
|
|
@ -26,9 +26,9 @@ public:
|
||||||
void StopCapture() override;
|
void StopCapture() override;
|
||||||
void SetResolution(const Service::CAM::Resolution& resolution) override;
|
void SetResolution(const Service::CAM::Resolution& resolution) override;
|
||||||
void SetFlip(Service::CAM::Flip flip) override;
|
void SetFlip(Service::CAM::Flip flip) override;
|
||||||
void SetEffect(Service::CAM::Effect effect) override{};
|
void SetEffect(Service::CAM::Effect effect) override {};
|
||||||
void SetFormat(Service::CAM::OutputFormat format) override;
|
void SetFormat(Service::CAM::OutputFormat format) override;
|
||||||
void SetFrameRate(Service::CAM::FrameRate frame_rate) override{};
|
void SetFrameRate(Service::CAM::FrameRate frame_rate) override {};
|
||||||
std::vector<u16> ReceiveFrame() override;
|
std::vector<u16> ReceiveFrame() override;
|
||||||
bool IsPreviewAvailable() override;
|
bool IsPreviewAvailable() override;
|
||||||
|
|
||||||
|
|
|
@ -21,12 +21,12 @@ public:
|
||||||
Interface(SharedGlobalRef<jstring> path, const Service::CAM::Flip& flip);
|
Interface(SharedGlobalRef<jstring> path, const Service::CAM::Flip& flip);
|
||||||
~Interface();
|
~Interface();
|
||||||
void StartCapture() override;
|
void StartCapture() override;
|
||||||
void StopCapture() override{};
|
void StopCapture() override {};
|
||||||
void SetResolution(const Service::CAM::Resolution& resolution) override;
|
void SetResolution(const Service::CAM::Resolution& resolution) override;
|
||||||
void SetFlip(Service::CAM::Flip flip) override;
|
void SetFlip(Service::CAM::Flip flip) override;
|
||||||
void SetEffect(Service::CAM::Effect effect) override{};
|
void SetEffect(Service::CAM::Effect effect) override {};
|
||||||
void SetFormat(Service::CAM::OutputFormat format) override;
|
void SetFormat(Service::CAM::OutputFormat format) override;
|
||||||
void SetFrameRate(Service::CAM::FrameRate frame_rate) override{};
|
void SetFrameRate(Service::CAM::FrameRate frame_rate) override {};
|
||||||
std::vector<u16> ReceiveFrame() override;
|
std::vector<u16> ReceiveFrame() override;
|
||||||
bool IsPreviewAvailable() override;
|
bool IsPreviewAvailable() override;
|
||||||
|
|
||||||
|
|
|
@ -40,8 +40,8 @@ class SharedContext_Android : public Frontend::GraphicsContext {
|
||||||
public:
|
public:
|
||||||
SharedContext_Android(EGLDisplay egl_display, EGLConfig egl_config,
|
SharedContext_Android(EGLDisplay egl_display, EGLConfig egl_config,
|
||||||
EGLContext egl_share_context)
|
EGLContext egl_share_context)
|
||||||
: egl_display{egl_display}, egl_surface{eglCreatePbufferSurface(egl_display, egl_config,
|
: egl_display{egl_display},
|
||||||
egl_empty_attribs.data())},
|
egl_surface{eglCreatePbufferSurface(egl_display, egl_config, egl_empty_attribs.data())},
|
||||||
egl_context{eglCreateContext(egl_display, egl_config, egl_share_context,
|
egl_context{eglCreateContext(egl_display, egl_config, egl_share_context,
|
||||||
egl_context_attribs.data())} {
|
egl_context_attribs.data())} {
|
||||||
ASSERT_MSG(egl_surface, "eglCreatePbufferSurface() failed!");
|
ASSERT_MSG(egl_surface, "eglCreatePbufferSurface() failed!");
|
||||||
|
|
|
@ -215,8 +215,8 @@ Joystick::~Joystick() {
|
||||||
}
|
}
|
||||||
|
|
||||||
ButtonFactory::ButtonFactory()
|
ButtonFactory::ButtonFactory()
|
||||||
: button_list{std::make_shared<ButtonList>()}, analog_button_list{
|
: button_list{std::make_shared<ButtonList>()},
|
||||||
std::make_shared<AnalogButtonList>()} {}
|
analog_button_list{std::make_shared<AnalogButtonList>()} {}
|
||||||
|
|
||||||
std::unique_ptr<Input::ButtonDevice> ButtonFactory::Create(const Common::ParamPackage& params) {
|
std::unique_ptr<Input::ButtonDevice> ButtonFactory::Create(const Common::ParamPackage& params) {
|
||||||
if (params.Has("axis")) {
|
if (params.Has("axis")) {
|
||||||
|
|
|
@ -98,11 +98,11 @@ private:
|
||||||
|
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int) {
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
ar& dsp_state;
|
ar & dsp_state;
|
||||||
ar& pipe_data;
|
ar & pipe_data;
|
||||||
ar& dsp_memory.raw_memory;
|
ar & dsp_memory.raw_memory;
|
||||||
ar& sources;
|
ar & sources;
|
||||||
ar& mixers;
|
ar & mixers;
|
||||||
// interrupt_handler is reregistered when loading state from DSP_DSP
|
// interrupt_handler is reregistered when loading state from DSP_DSP
|
||||||
}
|
}
|
||||||
friend class boost::serialization::access;
|
friend class boost::serialization::access;
|
||||||
|
|
|
@ -57,11 +57,11 @@ private:
|
||||||
|
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int) {
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
ar& current_frame;
|
ar & current_frame;
|
||||||
ar& state.intermediate_mixer_volume;
|
ar & state.intermediate_mixer_volume;
|
||||||
ar& state.aux_bus_enable;
|
ar & state.aux_bus_enable;
|
||||||
ar& state.intermediate_mix_buffer;
|
ar & state.intermediate_mix_buffer;
|
||||||
ar& state.output_format;
|
ar & state.output_format;
|
||||||
}
|
}
|
||||||
friend class boost::serialization::access;
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
|
|
@ -60,7 +60,7 @@ private:
|
||||||
|
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int) {
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
ar& storage;
|
ar & storage;
|
||||||
}
|
}
|
||||||
friend class boost::serialization::access;
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
|
|
@ -93,18 +93,18 @@ private:
|
||||||
private:
|
private:
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int) {
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
ar& physical_address;
|
ar & physical_address;
|
||||||
ar& length;
|
ar & length;
|
||||||
ar& adpcm_ps;
|
ar & adpcm_ps;
|
||||||
ar& adpcm_yn;
|
ar & adpcm_yn;
|
||||||
ar& adpcm_dirty;
|
ar & adpcm_dirty;
|
||||||
ar& is_looping;
|
ar & is_looping;
|
||||||
ar& buffer_id;
|
ar & buffer_id;
|
||||||
ar& mono_or_stereo;
|
ar & mono_or_stereo;
|
||||||
ar& format;
|
ar & format;
|
||||||
ar& from_queue;
|
ar & from_queue;
|
||||||
ar& play_position;
|
ar & play_position;
|
||||||
ar& has_played;
|
ar & has_played;
|
||||||
}
|
}
|
||||||
friend class boost::serialization::access;
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
@ -163,20 +163,20 @@ private:
|
||||||
private:
|
private:
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int) {
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
ar& enabled;
|
ar & enabled;
|
||||||
ar& sync_count;
|
ar & sync_count;
|
||||||
ar& gain;
|
ar & gain;
|
||||||
ar& input_queue;
|
ar & input_queue;
|
||||||
ar& mono_or_stereo;
|
ar & mono_or_stereo;
|
||||||
ar& format;
|
ar & format;
|
||||||
ar& current_sample_number;
|
ar & current_sample_number;
|
||||||
ar& current_buffer_physical_address;
|
ar & current_buffer_physical_address;
|
||||||
ar& current_buffer;
|
ar & current_buffer;
|
||||||
ar& buffer_update;
|
ar & buffer_update;
|
||||||
ar& current_buffer_id;
|
ar & current_buffer_id;
|
||||||
ar& adpcm_coeffs;
|
ar & adpcm_coeffs;
|
||||||
ar& rate_multiplier;
|
ar & rate_multiplier;
|
||||||
ar& interpolation_mode;
|
ar & interpolation_mode;
|
||||||
}
|
}
|
||||||
friend class boost::serialization::access;
|
friend class boost::serialization::access;
|
||||||
|
|
||||||
|
@ -196,7 +196,7 @@ private:
|
||||||
|
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int) {
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
ar& state;
|
ar & state;
|
||||||
}
|
}
|
||||||
friend class boost::serialization::access;
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
|
|
@ -599,14 +599,14 @@ public:
|
||||||
template <typename G = E, std::enable_if_t<std::is_constructible_v<E, G&&>>* = nullptr,
|
template <typename G = E, std::enable_if_t<std::is_constructible_v<E, G&&>>* = nullptr,
|
||||||
std::enable_if_t<!std::is_convertible_v<G&&, E>>* = nullptr>
|
std::enable_if_t<!std::is_convertible_v<G&&, E>>* = nullptr>
|
||||||
constexpr explicit Expected(Unexpected<G>&& e) noexcept(std::is_nothrow_constructible_v<E, G&&>)
|
constexpr explicit Expected(Unexpected<G>&& e) noexcept(std::is_nothrow_constructible_v<E, G&&>)
|
||||||
: impl_base{unexpect_t{}, std::move(e.value())}, ctor_base{
|
: impl_base{unexpect_t{}, std::move(e.value())},
|
||||||
detail::default_constructor_tag{}} {}
|
ctor_base{detail::default_constructor_tag{}} {}
|
||||||
|
|
||||||
template <typename G = E, std::enable_if_t<std::is_constructible_v<E, G&&>>* = nullptr,
|
template <typename G = E, std::enable_if_t<std::is_constructible_v<E, G&&>>* = nullptr,
|
||||||
std::enable_if_t<std::is_convertible_v<G&&, E>>* = nullptr>
|
std::enable_if_t<std::is_convertible_v<G&&, E>>* = nullptr>
|
||||||
constexpr Expected(Unexpected<G>&& e) noexcept(std::is_nothrow_constructible_v<E, G&&>)
|
constexpr Expected(Unexpected<G>&& e) noexcept(std::is_nothrow_constructible_v<E, G&&>)
|
||||||
: impl_base{unexpect_t{}, std::move(e.value())}, ctor_base{
|
: impl_base{unexpect_t{}, std::move(e.value())},
|
||||||
detail::default_constructor_tag{}} {}
|
ctor_base{detail::default_constructor_tag{}} {}
|
||||||
|
|
||||||
template <typename... Args, std::enable_if_t<std::is_constructible_v<E, Args&&...>>* = nullptr>
|
template <typename... Args, std::enable_if_t<std::is_constructible_v<E, Args&&...>>* = nullptr>
|
||||||
constexpr explicit Expected(unexpect_t, Args&&... args)
|
constexpr explicit Expected(unexpect_t, Args&&... args)
|
||||||
|
|
|
@ -83,7 +83,7 @@
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
|
|
||||||
#ifndef S_ISDIR
|
#ifndef S_ISDIR
|
||||||
#define S_ISDIR(m) (((m)&S_IFMT) == S_IFDIR)
|
#define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// This namespace has various generic functions related to files and paths.
|
// This namespace has various generic functions related to files and paths.
|
||||||
|
|
|
@ -81,11 +81,11 @@ struct FSTEntry {
|
||||||
private:
|
private:
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int) {
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
ar& isDirectory;
|
ar & isDirectory;
|
||||||
ar& size;
|
ar & size;
|
||||||
ar& Path::make(physicalName);
|
ar& Path::make(physicalName);
|
||||||
ar& Path::make(virtualName);
|
ar& Path::make(virtualName);
|
||||||
ar& children;
|
ar & children;
|
||||||
}
|
}
|
||||||
friend class boost::serialization::access;
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
@ -395,13 +395,13 @@ private:
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int) {
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
ar& Path::make(filename);
|
ar& Path::make(filename);
|
||||||
ar& openmode;
|
ar & openmode;
|
||||||
ar& flags;
|
ar & flags;
|
||||||
u64 pos;
|
u64 pos;
|
||||||
if (Archive::is_saving::value) {
|
if (Archive::is_saving::value) {
|
||||||
pos = Tell();
|
pos = Tell();
|
||||||
}
|
}
|
||||||
ar& pos;
|
ar & pos;
|
||||||
if (Archive::is_loading::value) {
|
if (Archive::is_loading::value) {
|
||||||
Open();
|
Open();
|
||||||
Seek(pos, SEEK_SET);
|
Seek(pos, SEEK_SET);
|
||||||
|
|
|
@ -59,7 +59,7 @@ private:
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int) {
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
ar& boost::serialization::base_object<BackingMem>(*this);
|
ar& boost::serialization::base_object<BackingMem>(*this);
|
||||||
ar& data;
|
ar & data;
|
||||||
}
|
}
|
||||||
friend class boost::serialization::access;
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
@ -151,8 +151,8 @@ private:
|
||||||
|
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int) {
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
ar& backing_mem;
|
ar & backing_mem;
|
||||||
ar& offset;
|
ar & offset;
|
||||||
Init();
|
Init();
|
||||||
}
|
}
|
||||||
friend class boost::serialization::access;
|
friend class boost::serialization::access;
|
||||||
|
|
|
@ -204,8 +204,8 @@ public:
|
||||||
explicit Setting(const Type& default_val, const Type& min_val, const Type& max_val,
|
explicit Setting(const Type& default_val, const Type& min_val, const Type& max_val,
|
||||||
const std::string& name)
|
const std::string& name)
|
||||||
requires(ranged)
|
requires(ranged)
|
||||||
: value{default_val},
|
: value{default_val}, default_value{default_val}, maximum{max_val}, minimum{min_val},
|
||||||
default_value{default_val}, maximum{max_val}, minimum{min_val}, label{name} {}
|
label{name} {}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns a reference to the setting's value.
|
* Returns a reference to the setting's value.
|
||||||
|
@ -449,7 +449,7 @@ struct Values {
|
||||||
Setting<bool> allow_plugin_loader{true, "allow_plugin_loader"};
|
Setting<bool> allow_plugin_loader{true, "allow_plugin_loader"};
|
||||||
|
|
||||||
// Renderer
|
// Renderer
|
||||||
SwitchableSetting<GraphicsAPI, true> graphics_api {
|
SwitchableSetting<GraphicsAPI, true> graphics_api{
|
||||||
#if defined(ENABLE_OPENGL)
|
#if defined(ENABLE_OPENGL)
|
||||||
GraphicsAPI::OpenGL,
|
GraphicsAPI::OpenGL,
|
||||||
#elif defined(ENABLE_VULKAN)
|
#elif defined(ENABLE_VULKAN)
|
||||||
|
@ -460,8 +460,7 @@ struct Values {
|
||||||
// TODO: Add a null renderer backend for this, perhaps.
|
// TODO: Add a null renderer backend for this, perhaps.
|
||||||
#error "At least one renderer must be enabled."
|
#error "At least one renderer must be enabled."
|
||||||
#endif
|
#endif
|
||||||
GraphicsAPI::Software, GraphicsAPI::Vulkan, "graphics_api"
|
GraphicsAPI::Software, GraphicsAPI::Vulkan, "graphics_api"};
|
||||||
};
|
|
||||||
SwitchableSetting<u32> physical_device{0, "physical_device"};
|
SwitchableSetting<u32> physical_device{0, "physical_device"};
|
||||||
Setting<bool> use_gles{false, "use_gles"};
|
Setting<bool> use_gles{false, "use_gles"};
|
||||||
Setting<bool> renderer_debug{false, "renderer_debug"};
|
Setting<bool> renderer_debug{false, "renderer_debug"};
|
||||||
|
|
|
@ -49,8 +49,8 @@ class Vec2 {
|
||||||
friend class boost::serialization::access;
|
friend class boost::serialization::access;
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int file_version) {
|
void serialize(Archive& ar, const unsigned int file_version) {
|
||||||
ar& x;
|
ar & x;
|
||||||
ar& y;
|
ar & y;
|
||||||
}
|
}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
@ -217,9 +217,9 @@ class Vec3 {
|
||||||
friend class boost::serialization::access;
|
friend class boost::serialization::access;
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int file_version) {
|
void serialize(Archive& ar, const unsigned int file_version) {
|
||||||
ar& x;
|
ar & x;
|
||||||
ar& y;
|
ar & y;
|
||||||
ar& z;
|
ar & z;
|
||||||
}
|
}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
@ -396,7 +396,9 @@ public:
|
||||||
// _DEFINE_SWIZZLER2 defines a single such function, DEFINE_SWIZZLER2 defines all of them for all
|
// _DEFINE_SWIZZLER2 defines a single such function, DEFINE_SWIZZLER2 defines all of them for all
|
||||||
// component names (x<->r) and permutations (xy<->yx)
|
// component names (x<->r) and permutations (xy<->yx)
|
||||||
#define _DEFINE_SWIZZLER2(a, b, name) \
|
#define _DEFINE_SWIZZLER2(a, b, name) \
|
||||||
[[nodiscard]] constexpr Vec2<T> name() const { return Vec2<T>(a, b); }
|
[[nodiscard]] constexpr Vec2<T> name() const { \
|
||||||
|
return Vec2<T>(a, b); \
|
||||||
|
}
|
||||||
#define DEFINE_SWIZZLER2(a, b, a2, b2, a3, b3, a4, b4) \
|
#define DEFINE_SWIZZLER2(a, b, a2, b2, a3, b3, a4, b4) \
|
||||||
_DEFINE_SWIZZLER2(a, b, a##b); \
|
_DEFINE_SWIZZLER2(a, b, a##b); \
|
||||||
_DEFINE_SWIZZLER2(a, b, a2##b2); \
|
_DEFINE_SWIZZLER2(a, b, a2##b2); \
|
||||||
|
@ -445,10 +447,10 @@ class Vec4 {
|
||||||
friend class boost::serialization::access;
|
friend class boost::serialization::access;
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int file_version) {
|
void serialize(Archive& ar, const unsigned int file_version) {
|
||||||
ar& x;
|
ar & x;
|
||||||
ar& y;
|
ar & y;
|
||||||
ar& z;
|
ar & z;
|
||||||
ar& w;
|
ar & w;
|
||||||
}
|
}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
@ -596,7 +598,9 @@ public:
|
||||||
// DEFINE_SWIZZLER2_COMP2 defines two component functions for all component names (x<->r) and
|
// DEFINE_SWIZZLER2_COMP2 defines two component functions for all component names (x<->r) and
|
||||||
// permutations (xy<->yx)
|
// permutations (xy<->yx)
|
||||||
#define _DEFINE_SWIZZLER2(a, b, name) \
|
#define _DEFINE_SWIZZLER2(a, b, name) \
|
||||||
[[nodiscard]] constexpr Vec2<T> name() const { return Vec2<T>(a, b); }
|
[[nodiscard]] constexpr Vec2<T> name() const { \
|
||||||
|
return Vec2<T>(a, b); \
|
||||||
|
}
|
||||||
#define DEFINE_SWIZZLER2_COMP1(a, a2) \
|
#define DEFINE_SWIZZLER2_COMP1(a, a2) \
|
||||||
_DEFINE_SWIZZLER2(a, a, a##a); \
|
_DEFINE_SWIZZLER2(a, a, a##a); \
|
||||||
_DEFINE_SWIZZLER2(a, a, a2##a2)
|
_DEFINE_SWIZZLER2(a, a, a2##a2)
|
||||||
|
@ -621,7 +625,9 @@ public:
|
||||||
#undef _DEFINE_SWIZZLER2
|
#undef _DEFINE_SWIZZLER2
|
||||||
|
|
||||||
#define _DEFINE_SWIZZLER3(a, b, c, name) \
|
#define _DEFINE_SWIZZLER3(a, b, c, name) \
|
||||||
[[nodiscard]] constexpr Vec3<T> name() const { return Vec3<T>(a, b, c); }
|
[[nodiscard]] constexpr Vec3<T> name() const { \
|
||||||
|
return Vec3<T>(a, b, c); \
|
||||||
|
}
|
||||||
#define DEFINE_SWIZZLER3_COMP1(a, a2) \
|
#define DEFINE_SWIZZLER3_COMP1(a, a2) \
|
||||||
_DEFINE_SWIZZLER3(a, a, a, a##a##a); \
|
_DEFINE_SWIZZLER3(a, a, a, a##a##a); \
|
||||||
_DEFINE_SWIZZLER3(a, a, a, a2##a2##a2)
|
_DEFINE_SWIZZLER3(a, a, a, a2##a2##a2)
|
||||||
|
|
|
@ -61,11 +61,11 @@ public:
|
||||||
|
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int file_version) {
|
void serialize(Archive& ar, const unsigned int file_version) {
|
||||||
ar& cpu_registers;
|
ar & cpu_registers;
|
||||||
ar& fpu_registers;
|
ar & fpu_registers;
|
||||||
ar& cpsr;
|
ar & cpsr;
|
||||||
ar& fpscr;
|
ar & fpscr;
|
||||||
ar& fpexc;
|
ar & fpexc;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -30,7 +30,7 @@ public:
|
||||||
|
|
||||||
void ClearInstructionCache() override;
|
void ClearInstructionCache() override;
|
||||||
void InvalidateCacheRange(u32 start_address, std::size_t length) override;
|
void InvalidateCacheRange(u32 start_address, std::size_t length) override;
|
||||||
void ClearExclusiveState() override{};
|
void ClearExclusiveState() override {};
|
||||||
|
|
||||||
void SetPC(u32 pc) override;
|
void SetPC(u32 pc) override;
|
||||||
u32 GetPC() const override;
|
u32 GetPC() const override;
|
||||||
|
|
|
@ -1627,7 +1627,7 @@ unsigned InterpreterMainLoop(ARMul_State* cpu) {
|
||||||
std::size_t ptr;
|
std::size_t ptr;
|
||||||
|
|
||||||
LOAD_NZCVT;
|
LOAD_NZCVT;
|
||||||
DISPATCH : {
|
DISPATCH: {
|
||||||
if (!cpu->NirqSig) {
|
if (!cpu->NirqSig) {
|
||||||
if (!(cpu->Cpsr & 0x80)) {
|
if (!(cpu->Cpsr & 0x80)) {
|
||||||
goto END;
|
goto END;
|
||||||
|
@ -1662,7 +1662,7 @@ DISPATCH : {
|
||||||
inst_base = (arm_inst*)&trans_cache_buf[ptr];
|
inst_base = (arm_inst*)&trans_cache_buf[ptr];
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
ADC_INST : {
|
ADC_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
adc_inst* const inst_cream = (adc_inst*)inst_base->component;
|
adc_inst* const inst_cream = (adc_inst*)inst_base->component;
|
||||||
|
|
||||||
|
@ -1696,7 +1696,7 @@ ADC_INST : {
|
||||||
FETCH_INST;
|
FETCH_INST;
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
ADD_INST : {
|
ADD_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
add_inst* const inst_cream = (add_inst*)inst_base->component;
|
add_inst* const inst_cream = (add_inst*)inst_base->component;
|
||||||
|
|
||||||
|
@ -1728,7 +1728,7 @@ ADD_INST : {
|
||||||
FETCH_INST;
|
FETCH_INST;
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
AND_INST : {
|
AND_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
and_inst* const inst_cream = (and_inst*)inst_base->component;
|
and_inst* const inst_cream = (and_inst*)inst_base->component;
|
||||||
|
|
||||||
|
@ -1761,7 +1761,7 @@ AND_INST : {
|
||||||
FETCH_INST;
|
FETCH_INST;
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
BBL_INST : {
|
BBL_INST: {
|
||||||
if ((inst_base->cond == ConditionCode::AL) || CondPassed(cpu, inst_base->cond)) {
|
if ((inst_base->cond == ConditionCode::AL) || CondPassed(cpu, inst_base->cond)) {
|
||||||
bbl_inst* inst_cream = (bbl_inst*)inst_base->component;
|
bbl_inst* inst_cream = (bbl_inst*)inst_base->component;
|
||||||
if (inst_cream->L) {
|
if (inst_cream->L) {
|
||||||
|
@ -1775,7 +1775,7 @@ BBL_INST : {
|
||||||
INC_PC(sizeof(bbl_inst));
|
INC_PC(sizeof(bbl_inst));
|
||||||
goto DISPATCH;
|
goto DISPATCH;
|
||||||
}
|
}
|
||||||
BIC_INST : {
|
BIC_INST: {
|
||||||
bic_inst* inst_cream = (bic_inst*)inst_base->component;
|
bic_inst* inst_cream = (bic_inst*)inst_base->component;
|
||||||
if ((inst_base->cond == ConditionCode::AL) || CondPassed(cpu, inst_base->cond)) {
|
if ((inst_base->cond == ConditionCode::AL) || CondPassed(cpu, inst_base->cond)) {
|
||||||
u32 lop = RN;
|
u32 lop = RN;
|
||||||
|
@ -1805,7 +1805,7 @@ BIC_INST : {
|
||||||
FETCH_INST;
|
FETCH_INST;
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
BKPT_INST : {
|
BKPT_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
bkpt_inst* const inst_cream = (bkpt_inst*)inst_base->component;
|
bkpt_inst* const inst_cream = (bkpt_inst*)inst_base->component;
|
||||||
LOG_DEBUG(Core_ARM11, "Breakpoint instruction hit. Immediate: {:#010X}", inst_cream->imm);
|
LOG_DEBUG(Core_ARM11, "Breakpoint instruction hit. Immediate: {:#010X}", inst_cream->imm);
|
||||||
|
@ -1815,7 +1815,7 @@ BKPT_INST : {
|
||||||
FETCH_INST;
|
FETCH_INST;
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
BLX_INST : {
|
BLX_INST: {
|
||||||
blx_inst* inst_cream = (blx_inst*)inst_base->component;
|
blx_inst* inst_cream = (blx_inst*)inst_base->component;
|
||||||
if ((inst_base->cond == ConditionCode::AL) || CondPassed(cpu, inst_base->cond)) {
|
if ((inst_base->cond == ConditionCode::AL) || CondPassed(cpu, inst_base->cond)) {
|
||||||
unsigned int inst = inst_cream->inst;
|
unsigned int inst = inst_cream->inst;
|
||||||
|
@ -1843,7 +1843,7 @@ BLX_INST : {
|
||||||
}
|
}
|
||||||
|
|
||||||
BX_INST:
|
BX_INST:
|
||||||
BXJ_INST : {
|
BXJ_INST: {
|
||||||
// Note that only the 'fail' case of BXJ is emulated. This is because
|
// Note that only the 'fail' case of BXJ is emulated. This is because
|
||||||
// the facilities for Jazelle emulation are not implemented.
|
// the facilities for Jazelle emulation are not implemented.
|
||||||
//
|
//
|
||||||
|
@ -1871,7 +1871,7 @@ BXJ_INST : {
|
||||||
goto DISPATCH;
|
goto DISPATCH;
|
||||||
}
|
}
|
||||||
|
|
||||||
CDP_INST : {
|
CDP_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
// Undefined instruction here
|
// Undefined instruction here
|
||||||
cpu->NumInstrsToExecute = 0;
|
cpu->NumInstrsToExecute = 0;
|
||||||
|
@ -1883,14 +1883,14 @@ CDP_INST : {
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
|
|
||||||
CLREX_INST : {
|
CLREX_INST: {
|
||||||
cpu->UnsetExclusiveMemoryAddress();
|
cpu->UnsetExclusiveMemoryAddress();
|
||||||
cpu->Reg[15] += cpu->GetInstructionSize();
|
cpu->Reg[15] += cpu->GetInstructionSize();
|
||||||
INC_PC(sizeof(clrex_inst));
|
INC_PC(sizeof(clrex_inst));
|
||||||
FETCH_INST;
|
FETCH_INST;
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
CLZ_INST : {
|
CLZ_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
clz_inst* inst_cream = (clz_inst*)inst_base->component;
|
clz_inst* inst_cream = (clz_inst*)inst_base->component;
|
||||||
RD = clz(RM);
|
RD = clz(RM);
|
||||||
|
@ -1900,7 +1900,7 @@ CLZ_INST : {
|
||||||
FETCH_INST;
|
FETCH_INST;
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
CMN_INST : {
|
CMN_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
cmn_inst* const inst_cream = (cmn_inst*)inst_base->component;
|
cmn_inst* const inst_cream = (cmn_inst*)inst_base->component;
|
||||||
|
|
||||||
|
@ -1922,7 +1922,7 @@ CMN_INST : {
|
||||||
FETCH_INST;
|
FETCH_INST;
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
CMP_INST : {
|
CMP_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
cmp_inst* const inst_cream = (cmp_inst*)inst_base->component;
|
cmp_inst* const inst_cream = (cmp_inst*)inst_base->component;
|
||||||
|
|
||||||
|
@ -1944,7 +1944,7 @@ CMP_INST : {
|
||||||
FETCH_INST;
|
FETCH_INST;
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
CPS_INST : {
|
CPS_INST: {
|
||||||
cps_inst* inst_cream = (cps_inst*)inst_base->component;
|
cps_inst* inst_cream = (cps_inst*)inst_base->component;
|
||||||
u32 aif_val = 0;
|
u32 aif_val = 0;
|
||||||
u32 aif_mask = 0;
|
u32 aif_mask = 0;
|
||||||
|
@ -1975,7 +1975,7 @@ CPS_INST : {
|
||||||
FETCH_INST;
|
FETCH_INST;
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
CPY_INST : {
|
CPY_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
mov_inst* inst_cream = (mov_inst*)inst_base->component;
|
mov_inst* inst_cream = (mov_inst*)inst_base->component;
|
||||||
|
|
||||||
|
@ -1990,7 +1990,7 @@ CPY_INST : {
|
||||||
FETCH_INST;
|
FETCH_INST;
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
EOR_INST : {
|
EOR_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
eor_inst* inst_cream = (eor_inst*)inst_base->component;
|
eor_inst* inst_cream = (eor_inst*)inst_base->component;
|
||||||
|
|
||||||
|
@ -2021,7 +2021,7 @@ EOR_INST : {
|
||||||
FETCH_INST;
|
FETCH_INST;
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
LDC_INST : {
|
LDC_INST: {
|
||||||
// Instruction not implemented
|
// Instruction not implemented
|
||||||
// LOG_CRITICAL(Core_ARM11, "unimplemented instruction");
|
// LOG_CRITICAL(Core_ARM11, "unimplemented instruction");
|
||||||
cpu->Reg[15] += cpu->GetInstructionSize();
|
cpu->Reg[15] += cpu->GetInstructionSize();
|
||||||
|
@ -2029,7 +2029,7 @@ LDC_INST : {
|
||||||
FETCH_INST;
|
FETCH_INST;
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
LDM_INST : {
|
LDM_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
ldst_inst* inst_cream = (ldst_inst*)inst_base->component;
|
ldst_inst* inst_cream = (ldst_inst*)inst_base->component;
|
||||||
inst_cream->get_addr(cpu, inst_cream->inst, addr);
|
inst_cream->get_addr(cpu, inst_cream->inst, addr);
|
||||||
|
@ -2100,7 +2100,7 @@ LDM_INST : {
|
||||||
FETCH_INST;
|
FETCH_INST;
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
SXTH_INST : {
|
SXTH_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
sxth_inst* inst_cream = (sxth_inst*)inst_base->component;
|
sxth_inst* inst_cream = (sxth_inst*)inst_base->component;
|
||||||
|
|
||||||
|
@ -2117,7 +2117,7 @@ SXTH_INST : {
|
||||||
FETCH_INST;
|
FETCH_INST;
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
LDR_INST : {
|
LDR_INST: {
|
||||||
ldst_inst* inst_cream = (ldst_inst*)inst_base->component;
|
ldst_inst* inst_cream = (ldst_inst*)inst_base->component;
|
||||||
inst_cream->get_addr(cpu, inst_cream->inst, addr);
|
inst_cream->get_addr(cpu, inst_cream->inst, addr);
|
||||||
|
|
||||||
|
@ -2137,7 +2137,7 @@ LDR_INST : {
|
||||||
FETCH_INST;
|
FETCH_INST;
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
LDRCOND_INST : {
|
LDRCOND_INST: {
|
||||||
if (CondPassed(cpu, inst_base->cond)) {
|
if (CondPassed(cpu, inst_base->cond)) {
|
||||||
ldst_inst* inst_cream = (ldst_inst*)inst_base->component;
|
ldst_inst* inst_cream = (ldst_inst*)inst_base->component;
|
||||||
inst_cream->get_addr(cpu, inst_cream->inst, addr);
|
inst_cream->get_addr(cpu, inst_cream->inst, addr);
|
||||||
|
@ -2158,7 +2158,7 @@ LDRCOND_INST : {
|
||||||
FETCH_INST;
|
FETCH_INST;
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
UXTH_INST : {
|
UXTH_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
uxth_inst* inst_cream = (uxth_inst*)inst_base->component;
|
uxth_inst* inst_cream = (uxth_inst*)inst_base->component;
|
||||||
RD = ROTATE_RIGHT_32(RM, 8 * inst_cream->rotate) & 0xffff;
|
RD = ROTATE_RIGHT_32(RM, 8 * inst_cream->rotate) & 0xffff;
|
||||||
|
@ -2168,7 +2168,7 @@ UXTH_INST : {
|
||||||
FETCH_INST;
|
FETCH_INST;
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
UXTAH_INST : {
|
UXTAH_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
uxtah_inst* inst_cream = (uxtah_inst*)inst_base->component;
|
uxtah_inst* inst_cream = (uxtah_inst*)inst_base->component;
|
||||||
unsigned int operand2 = ROTATE_RIGHT_32(RM, 8 * inst_cream->rotate) & 0xffff;
|
unsigned int operand2 = ROTATE_RIGHT_32(RM, 8 * inst_cream->rotate) & 0xffff;
|
||||||
|
@ -2180,7 +2180,7 @@ UXTAH_INST : {
|
||||||
FETCH_INST;
|
FETCH_INST;
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
LDRB_INST : {
|
LDRB_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
ldst_inst* inst_cream = (ldst_inst*)inst_base->component;
|
ldst_inst* inst_cream = (ldst_inst*)inst_base->component;
|
||||||
inst_cream->get_addr(cpu, inst_cream->inst, addr);
|
inst_cream->get_addr(cpu, inst_cream->inst, addr);
|
||||||
|
@ -2192,7 +2192,7 @@ LDRB_INST : {
|
||||||
FETCH_INST;
|
FETCH_INST;
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
LDRBT_INST : {
|
LDRBT_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
ldst_inst* inst_cream = (ldst_inst*)inst_base->component;
|
ldst_inst* inst_cream = (ldst_inst*)inst_base->component;
|
||||||
inst_cream->get_addr(cpu, inst_cream->inst, addr);
|
inst_cream->get_addr(cpu, inst_cream->inst, addr);
|
||||||
|
@ -2211,7 +2211,7 @@ LDRBT_INST : {
|
||||||
FETCH_INST;
|
FETCH_INST;
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
LDRD_INST : {
|
LDRD_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
ldst_inst* inst_cream = (ldst_inst*)inst_base->component;
|
ldst_inst* inst_cream = (ldst_inst*)inst_base->component;
|
||||||
// Should check if RD is even-numbered, Rd != 14, addr[0:1] == 0, (CP15_reg1_U == 1 ||
|
// Should check if RD is even-numbered, Rd != 14, addr[0:1] == 0, (CP15_reg1_U == 1 ||
|
||||||
|
@ -2231,7 +2231,7 @@ LDRD_INST : {
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
|
|
||||||
LDREX_INST : {
|
LDREX_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
generic_arm_inst* inst_cream = (generic_arm_inst*)inst_base->component;
|
generic_arm_inst* inst_cream = (generic_arm_inst*)inst_base->component;
|
||||||
unsigned int read_addr = RN;
|
unsigned int read_addr = RN;
|
||||||
|
@ -2245,7 +2245,7 @@ LDREX_INST : {
|
||||||
FETCH_INST;
|
FETCH_INST;
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
LDREXB_INST : {
|
LDREXB_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
generic_arm_inst* inst_cream = (generic_arm_inst*)inst_base->component;
|
generic_arm_inst* inst_cream = (generic_arm_inst*)inst_base->component;
|
||||||
unsigned int read_addr = RN;
|
unsigned int read_addr = RN;
|
||||||
|
@ -2259,7 +2259,7 @@ LDREXB_INST : {
|
||||||
FETCH_INST;
|
FETCH_INST;
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
LDREXH_INST : {
|
LDREXH_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
generic_arm_inst* inst_cream = (generic_arm_inst*)inst_base->component;
|
generic_arm_inst* inst_cream = (generic_arm_inst*)inst_base->component;
|
||||||
unsigned int read_addr = RN;
|
unsigned int read_addr = RN;
|
||||||
|
@ -2273,7 +2273,7 @@ LDREXH_INST : {
|
||||||
FETCH_INST;
|
FETCH_INST;
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
LDREXD_INST : {
|
LDREXD_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
generic_arm_inst* inst_cream = (generic_arm_inst*)inst_base->component;
|
generic_arm_inst* inst_cream = (generic_arm_inst*)inst_base->component;
|
||||||
unsigned int read_addr = RN;
|
unsigned int read_addr = RN;
|
||||||
|
@ -2288,7 +2288,7 @@ LDREXD_INST : {
|
||||||
FETCH_INST;
|
FETCH_INST;
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
LDRH_INST : {
|
LDRH_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
ldst_inst* inst_cream = (ldst_inst*)inst_base->component;
|
ldst_inst* inst_cream = (ldst_inst*)inst_base->component;
|
||||||
inst_cream->get_addr(cpu, inst_cream->inst, addr);
|
inst_cream->get_addr(cpu, inst_cream->inst, addr);
|
||||||
|
@ -2300,7 +2300,7 @@ LDRH_INST : {
|
||||||
FETCH_INST;
|
FETCH_INST;
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
LDRSB_INST : {
|
LDRSB_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
ldst_inst* inst_cream = (ldst_inst*)inst_base->component;
|
ldst_inst* inst_cream = (ldst_inst*)inst_base->component;
|
||||||
inst_cream->get_addr(cpu, inst_cream->inst, addr);
|
inst_cream->get_addr(cpu, inst_cream->inst, addr);
|
||||||
|
@ -2315,7 +2315,7 @@ LDRSB_INST : {
|
||||||
FETCH_INST;
|
FETCH_INST;
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
LDRSH_INST : {
|
LDRSH_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
ldst_inst* inst_cream = (ldst_inst*)inst_base->component;
|
ldst_inst* inst_cream = (ldst_inst*)inst_base->component;
|
||||||
inst_cream->get_addr(cpu, inst_cream->inst, addr);
|
inst_cream->get_addr(cpu, inst_cream->inst, addr);
|
||||||
|
@ -2331,7 +2331,7 @@ LDRSH_INST : {
|
||||||
FETCH_INST;
|
FETCH_INST;
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
LDRT_INST : {
|
LDRT_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
ldst_inst* inst_cream = (ldst_inst*)inst_base->component;
|
ldst_inst* inst_cream = (ldst_inst*)inst_base->component;
|
||||||
inst_cream->get_addr(cpu, inst_cream->inst, addr);
|
inst_cream->get_addr(cpu, inst_cream->inst, addr);
|
||||||
|
@ -2350,7 +2350,7 @@ LDRT_INST : {
|
||||||
FETCH_INST;
|
FETCH_INST;
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
MCR_INST : {
|
MCR_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
mcr_inst* inst_cream = (mcr_inst*)inst_base->component;
|
mcr_inst* inst_cream = (mcr_inst*)inst_base->component;
|
||||||
|
|
||||||
|
@ -2368,7 +2368,7 @@ MCR_INST : {
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
|
|
||||||
MCRR_INST : {
|
MCRR_INST: {
|
||||||
// Stubbed, as the MPCore doesn't have any registers that are accessible
|
// Stubbed, as the MPCore doesn't have any registers that are accessible
|
||||||
// through this instruction.
|
// through this instruction.
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
|
@ -2385,7 +2385,7 @@ MCRR_INST : {
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
|
|
||||||
MLA_INST : {
|
MLA_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
mla_inst* inst_cream = (mla_inst*)inst_base->component;
|
mla_inst* inst_cream = (mla_inst*)inst_base->component;
|
||||||
|
|
||||||
|
@ -2404,7 +2404,7 @@ MLA_INST : {
|
||||||
FETCH_INST;
|
FETCH_INST;
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
MOV_INST : {
|
MOV_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
mov_inst* inst_cream = (mov_inst*)inst_base->component;
|
mov_inst* inst_cream = (mov_inst*)inst_base->component;
|
||||||
|
|
||||||
|
@ -2430,7 +2430,7 @@ MOV_INST : {
|
||||||
FETCH_INST;
|
FETCH_INST;
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
MRC_INST : {
|
MRC_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
mrc_inst* inst_cream = (mrc_inst*)inst_base->component;
|
mrc_inst* inst_cream = (mrc_inst*)inst_base->component;
|
||||||
|
|
||||||
|
@ -2451,7 +2451,7 @@ MRC_INST : {
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
|
|
||||||
MRRC_INST : {
|
MRRC_INST: {
|
||||||
// Stubbed, as the MPCore doesn't have any registers that are accessible
|
// Stubbed, as the MPCore doesn't have any registers that are accessible
|
||||||
// through this instruction.
|
// through this instruction.
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
|
@ -2468,7 +2468,7 @@ MRRC_INST : {
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
|
|
||||||
MRS_INST : {
|
MRS_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
mrs_inst* inst_cream = (mrs_inst*)inst_base->component;
|
mrs_inst* inst_cream = (mrs_inst*)inst_base->component;
|
||||||
|
|
||||||
|
@ -2484,7 +2484,7 @@ MRS_INST : {
|
||||||
FETCH_INST;
|
FETCH_INST;
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
MSR_INST : {
|
MSR_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
msr_inst* inst_cream = (msr_inst*)inst_base->component;
|
msr_inst* inst_cream = (msr_inst*)inst_base->component;
|
||||||
const u32 UserMask = 0xf80f0200, PrivMask = 0x000001df, StateMask = 0x01000020;
|
const u32 UserMask = 0xf80f0200, PrivMask = 0x000001df, StateMask = 0x01000020;
|
||||||
|
@ -2527,7 +2527,7 @@ MSR_INST : {
|
||||||
FETCH_INST;
|
FETCH_INST;
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
MUL_INST : {
|
MUL_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
mul_inst* inst_cream = (mul_inst*)inst_base->component;
|
mul_inst* inst_cream = (mul_inst*)inst_base->component;
|
||||||
|
|
||||||
|
@ -2544,7 +2544,7 @@ MUL_INST : {
|
||||||
FETCH_INST;
|
FETCH_INST;
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
MVN_INST : {
|
MVN_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
mvn_inst* const inst_cream = (mvn_inst*)inst_base->component;
|
mvn_inst* const inst_cream = (mvn_inst*)inst_base->component;
|
||||||
|
|
||||||
|
@ -2571,7 +2571,7 @@ MVN_INST : {
|
||||||
FETCH_INST;
|
FETCH_INST;
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
ORR_INST : {
|
ORR_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
orr_inst* const inst_cream = (orr_inst*)inst_base->component;
|
orr_inst* const inst_cream = (orr_inst*)inst_base->component;
|
||||||
|
|
||||||
|
@ -2605,14 +2605,14 @@ ORR_INST : {
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
|
|
||||||
NOP_INST : {
|
NOP_INST: {
|
||||||
cpu->Reg[15] += cpu->GetInstructionSize();
|
cpu->Reg[15] += cpu->GetInstructionSize();
|
||||||
INC_PC_STUB;
|
INC_PC_STUB;
|
||||||
FETCH_INST;
|
FETCH_INST;
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
|
|
||||||
PKHBT_INST : {
|
PKHBT_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
pkh_inst* inst_cream = (pkh_inst*)inst_base->component;
|
pkh_inst* inst_cream = (pkh_inst*)inst_base->component;
|
||||||
RD = (RN & 0xFFFF) | ((RM << inst_cream->imm) & 0xFFFF0000);
|
RD = (RN & 0xFFFF) | ((RM << inst_cream->imm) & 0xFFFF0000);
|
||||||
|
@ -2623,7 +2623,7 @@ PKHBT_INST : {
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
|
|
||||||
PKHTB_INST : {
|
PKHTB_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
pkh_inst* inst_cream = (pkh_inst*)inst_base->component;
|
pkh_inst* inst_cream = (pkh_inst*)inst_base->component;
|
||||||
int shift_imm = inst_cream->imm ? inst_cream->imm : 31;
|
int shift_imm = inst_cream->imm ? inst_cream->imm : 31;
|
||||||
|
@ -2635,7 +2635,7 @@ PKHTB_INST : {
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
|
|
||||||
PLD_INST : {
|
PLD_INST: {
|
||||||
// Not implemented. PLD is a hint instruction, so it's optional.
|
// Not implemented. PLD is a hint instruction, so it's optional.
|
||||||
|
|
||||||
cpu->Reg[15] += cpu->GetInstructionSize();
|
cpu->Reg[15] += cpu->GetInstructionSize();
|
||||||
|
@ -2647,7 +2647,7 @@ PLD_INST : {
|
||||||
QADD_INST:
|
QADD_INST:
|
||||||
QDADD_INST:
|
QDADD_INST:
|
||||||
QDSUB_INST:
|
QDSUB_INST:
|
||||||
QSUB_INST : {
|
QSUB_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
generic_arm_inst* const inst_cream = (generic_arm_inst*)inst_base->component;
|
generic_arm_inst* const inst_cream = (generic_arm_inst*)inst_base->component;
|
||||||
const u8 op1 = inst_cream->op1;
|
const u8 op1 = inst_cream->op1;
|
||||||
|
@ -2721,7 +2721,7 @@ QADD16_INST:
|
||||||
QADDSUBX_INST:
|
QADDSUBX_INST:
|
||||||
QSUB8_INST:
|
QSUB8_INST:
|
||||||
QSUB16_INST:
|
QSUB16_INST:
|
||||||
QSUBADDX_INST : {
|
QSUBADDX_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
generic_arm_inst* const inst_cream = (generic_arm_inst*)inst_base->component;
|
generic_arm_inst* const inst_cream = (generic_arm_inst*)inst_base->component;
|
||||||
const u16 rm_lo = (RM & 0xFFFF);
|
const u16 rm_lo = (RM & 0xFFFF);
|
||||||
|
@ -2779,7 +2779,7 @@ QSUBADDX_INST : {
|
||||||
|
|
||||||
REV_INST:
|
REV_INST:
|
||||||
REV16_INST:
|
REV16_INST:
|
||||||
REVSH_INST : {
|
REVSH_INST: {
|
||||||
|
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
rev_inst* const inst_cream = (rev_inst*)inst_base->component;
|
rev_inst* const inst_cream = (rev_inst*)inst_base->component;
|
||||||
|
@ -2811,7 +2811,7 @@ REVSH_INST : {
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
|
|
||||||
RFE_INST : {
|
RFE_INST: {
|
||||||
// RFE is unconditional
|
// RFE is unconditional
|
||||||
ldst_inst* const inst_cream = (ldst_inst*)inst_base->component;
|
ldst_inst* const inst_cream = (ldst_inst*)inst_base->component;
|
||||||
|
|
||||||
|
@ -2825,7 +2825,7 @@ RFE_INST : {
|
||||||
goto DISPATCH;
|
goto DISPATCH;
|
||||||
}
|
}
|
||||||
|
|
||||||
RSB_INST : {
|
RSB_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
rsb_inst* const inst_cream = (rsb_inst*)inst_base->component;
|
rsb_inst* const inst_cream = (rsb_inst*)inst_base->component;
|
||||||
|
|
||||||
|
@ -2859,7 +2859,7 @@ RSB_INST : {
|
||||||
FETCH_INST;
|
FETCH_INST;
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
RSC_INST : {
|
RSC_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
rsc_inst* const inst_cream = (rsc_inst*)inst_base->component;
|
rsc_inst* const inst_cream = (rsc_inst*)inst_base->component;
|
||||||
|
|
||||||
|
@ -2899,7 +2899,7 @@ SSUB8_INST:
|
||||||
SADD16_INST:
|
SADD16_INST:
|
||||||
SADDSUBX_INST:
|
SADDSUBX_INST:
|
||||||
SSUBADDX_INST:
|
SSUBADDX_INST:
|
||||||
SSUB16_INST : {
|
SSUB16_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
generic_arm_inst* const inst_cream = (generic_arm_inst*)inst_base->component;
|
generic_arm_inst* const inst_cream = (generic_arm_inst*)inst_base->component;
|
||||||
const u8 op2 = inst_cream->op2;
|
const u8 op2 = inst_cream->op2;
|
||||||
|
@ -3001,7 +3001,7 @@ SSUB16_INST : {
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
|
|
||||||
SBC_INST : {
|
SBC_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
sbc_inst* const inst_cream = (sbc_inst*)inst_base->component;
|
sbc_inst* const inst_cream = (sbc_inst*)inst_base->component;
|
||||||
|
|
||||||
|
@ -3036,7 +3036,7 @@ SBC_INST : {
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
|
|
||||||
SEL_INST : {
|
SEL_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
generic_arm_inst* const inst_cream = (generic_arm_inst*)inst_base->component;
|
generic_arm_inst* const inst_cream = (generic_arm_inst*)inst_base->component;
|
||||||
|
|
||||||
|
@ -3074,7 +3074,7 @@ SEL_INST : {
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
|
|
||||||
SETEND_INST : {
|
SETEND_INST: {
|
||||||
// SETEND is unconditional
|
// SETEND is unconditional
|
||||||
setend_inst* const inst_cream = (setend_inst*)inst_base->component;
|
setend_inst* const inst_cream = (setend_inst*)inst_base->component;
|
||||||
const bool big_endian = (inst_cream->set_bigend == 1);
|
const bool big_endian = (inst_cream->set_bigend == 1);
|
||||||
|
@ -3092,7 +3092,7 @@ SETEND_INST : {
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
|
|
||||||
SEV_INST : {
|
SEV_INST: {
|
||||||
// Stubbed, as SEV is a hint instruction.
|
// Stubbed, as SEV is a hint instruction.
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
LOG_TRACE(Core_ARM11, "SEV executed.");
|
LOG_TRACE(Core_ARM11, "SEV executed.");
|
||||||
|
@ -3109,7 +3109,7 @@ SHADD16_INST:
|
||||||
SHADDSUBX_INST:
|
SHADDSUBX_INST:
|
||||||
SHSUB8_INST:
|
SHSUB8_INST:
|
||||||
SHSUB16_INST:
|
SHSUB16_INST:
|
||||||
SHSUBADDX_INST : {
|
SHSUBADDX_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
generic_arm_inst* const inst_cream = (generic_arm_inst*)inst_base->component;
|
generic_arm_inst* const inst_cream = (generic_arm_inst*)inst_base->component;
|
||||||
|
|
||||||
|
@ -3175,7 +3175,7 @@ SHSUBADDX_INST : {
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
|
|
||||||
SMLA_INST : {
|
SMLA_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
smla_inst* inst_cream = (smla_inst*)inst_base->component;
|
smla_inst* inst_cream = (smla_inst*)inst_base->component;
|
||||||
s32 operand1, operand2;
|
s32 operand1, operand2;
|
||||||
|
@ -3204,7 +3204,7 @@ SMLA_INST : {
|
||||||
SMLAD_INST:
|
SMLAD_INST:
|
||||||
SMLSD_INST:
|
SMLSD_INST:
|
||||||
SMUAD_INST:
|
SMUAD_INST:
|
||||||
SMUSD_INST : {
|
SMUSD_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
smlad_inst* const inst_cream = (smlad_inst*)inst_base->component;
|
smlad_inst* const inst_cream = (smlad_inst*)inst_base->component;
|
||||||
const u8 op2 = inst_cream->op2;
|
const u8 op2 = inst_cream->op2;
|
||||||
|
@ -3260,7 +3260,7 @@ SMUSD_INST : {
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
|
|
||||||
SMLAL_INST : {
|
SMLAL_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
umlal_inst* inst_cream = (umlal_inst*)inst_base->component;
|
umlal_inst* inst_cream = (umlal_inst*)inst_base->component;
|
||||||
long long int rm = RM;
|
long long int rm = RM;
|
||||||
|
@ -3288,7 +3288,7 @@ SMLAL_INST : {
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
|
|
||||||
SMLALXY_INST : {
|
SMLALXY_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
smlalxy_inst* const inst_cream = (smlalxy_inst*)inst_base->component;
|
smlalxy_inst* const inst_cream = (smlalxy_inst*)inst_base->component;
|
||||||
|
|
||||||
|
@ -3317,7 +3317,7 @@ SMLALXY_INST : {
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
|
|
||||||
SMLAW_INST : {
|
SMLAW_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
smlad_inst* const inst_cream = (smlad_inst*)inst_base->component;
|
smlad_inst* const inst_cream = (smlad_inst*)inst_base->component;
|
||||||
|
|
||||||
|
@ -3342,7 +3342,7 @@ SMLAW_INST : {
|
||||||
}
|
}
|
||||||
|
|
||||||
SMLALD_INST:
|
SMLALD_INST:
|
||||||
SMLSLD_INST : {
|
SMLSLD_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
smlald_inst* const inst_cream = (smlald_inst*)inst_base->component;
|
smlald_inst* const inst_cream = (smlald_inst*)inst_base->component;
|
||||||
|
|
||||||
|
@ -3380,7 +3380,7 @@ SMLSLD_INST : {
|
||||||
|
|
||||||
SMMLA_INST:
|
SMMLA_INST:
|
||||||
SMMLS_INST:
|
SMMLS_INST:
|
||||||
SMMUL_INST : {
|
SMMUL_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
smlad_inst* const inst_cream = (smlad_inst*)inst_base->component;
|
smlad_inst* const inst_cream = (smlad_inst*)inst_base->component;
|
||||||
|
|
||||||
|
@ -3413,7 +3413,7 @@ SMMUL_INST : {
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
|
|
||||||
SMUL_INST : {
|
SMUL_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
smul_inst* inst_cream = (smul_inst*)inst_base->component;
|
smul_inst* inst_cream = (smul_inst*)inst_base->component;
|
||||||
u32 operand1, operand2;
|
u32 operand1, operand2;
|
||||||
|
@ -3433,7 +3433,7 @@ SMUL_INST : {
|
||||||
FETCH_INST;
|
FETCH_INST;
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
SMULL_INST : {
|
SMULL_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
umull_inst* inst_cream = (umull_inst*)inst_base->component;
|
umull_inst* inst_cream = (umull_inst*)inst_base->component;
|
||||||
s64 rm = RM;
|
s64 rm = RM;
|
||||||
|
@ -3459,7 +3459,7 @@ SMULL_INST : {
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
|
|
||||||
SMULW_INST : {
|
SMULW_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
smlad_inst* const inst_cream = (smlad_inst*)inst_base->component;
|
smlad_inst* const inst_cream = (smlad_inst*)inst_base->component;
|
||||||
|
|
||||||
|
@ -3474,7 +3474,7 @@ SMULW_INST : {
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
|
|
||||||
SRS_INST : {
|
SRS_INST: {
|
||||||
// SRS is unconditional
|
// SRS is unconditional
|
||||||
ldst_inst* const inst_cream = (ldst_inst*)inst_base->component;
|
ldst_inst* const inst_cream = (ldst_inst*)inst_base->component;
|
||||||
|
|
||||||
|
@ -3490,7 +3490,7 @@ SRS_INST : {
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
|
|
||||||
SSAT_INST : {
|
SSAT_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
ssat_inst* const inst_cream = (ssat_inst*)inst_base->component;
|
ssat_inst* const inst_cream = (ssat_inst*)inst_base->component;
|
||||||
|
|
||||||
|
@ -3522,7 +3522,7 @@ SSAT_INST : {
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
|
|
||||||
SSAT16_INST : {
|
SSAT16_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
ssat_inst* const inst_cream = (ssat_inst*)inst_base->component;
|
ssat_inst* const inst_cream = (ssat_inst*)inst_base->component;
|
||||||
const u8 saturate_to = inst_cream->sat_imm;
|
const u8 saturate_to = inst_cream->sat_imm;
|
||||||
|
@ -3543,7 +3543,7 @@ SSAT16_INST : {
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
|
|
||||||
STC_INST : {
|
STC_INST: {
|
||||||
// Instruction not implemented
|
// Instruction not implemented
|
||||||
// LOG_CRITICAL(Core_ARM11, "unimplemented instruction");
|
// LOG_CRITICAL(Core_ARM11, "unimplemented instruction");
|
||||||
cpu->Reg[15] += cpu->GetInstructionSize();
|
cpu->Reg[15] += cpu->GetInstructionSize();
|
||||||
|
@ -3551,7 +3551,7 @@ STC_INST : {
|
||||||
FETCH_INST;
|
FETCH_INST;
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
STM_INST : {
|
STM_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
ldst_inst* inst_cream = (ldst_inst*)inst_base->component;
|
ldst_inst* inst_cream = (ldst_inst*)inst_base->component;
|
||||||
unsigned int inst = inst_cream->inst;
|
unsigned int inst = inst_cream->inst;
|
||||||
|
@ -3609,7 +3609,7 @@ STM_INST : {
|
||||||
FETCH_INST;
|
FETCH_INST;
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
SXTB_INST : {
|
SXTB_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
sxtb_inst* inst_cream = (sxtb_inst*)inst_base->component;
|
sxtb_inst* inst_cream = (sxtb_inst*)inst_base->component;
|
||||||
|
|
||||||
|
@ -3626,7 +3626,7 @@ SXTB_INST : {
|
||||||
FETCH_INST;
|
FETCH_INST;
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
STR_INST : {
|
STR_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
ldst_inst* inst_cream = (ldst_inst*)inst_base->component;
|
ldst_inst* inst_cream = (ldst_inst*)inst_base->component;
|
||||||
inst_cream->get_addr(cpu, inst_cream->inst, addr);
|
inst_cream->get_addr(cpu, inst_cream->inst, addr);
|
||||||
|
@ -3644,7 +3644,7 @@ STR_INST : {
|
||||||
FETCH_INST;
|
FETCH_INST;
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
UXTB_INST : {
|
UXTB_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
uxtb_inst* inst_cream = (uxtb_inst*)inst_base->component;
|
uxtb_inst* inst_cream = (uxtb_inst*)inst_base->component;
|
||||||
RD = ROTATE_RIGHT_32(RM, 8 * inst_cream->rotate) & 0xff;
|
RD = ROTATE_RIGHT_32(RM, 8 * inst_cream->rotate) & 0xff;
|
||||||
|
@ -3654,7 +3654,7 @@ UXTB_INST : {
|
||||||
FETCH_INST;
|
FETCH_INST;
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
UXTAB_INST : {
|
UXTAB_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
uxtab_inst* inst_cream = (uxtab_inst*)inst_base->component;
|
uxtab_inst* inst_cream = (uxtab_inst*)inst_base->component;
|
||||||
|
|
||||||
|
@ -3666,7 +3666,7 @@ UXTAB_INST : {
|
||||||
FETCH_INST;
|
FETCH_INST;
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
STRB_INST : {
|
STRB_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
ldst_inst* inst_cream = (ldst_inst*)inst_base->component;
|
ldst_inst* inst_cream = (ldst_inst*)inst_base->component;
|
||||||
inst_cream->get_addr(cpu, inst_cream->inst, addr);
|
inst_cream->get_addr(cpu, inst_cream->inst, addr);
|
||||||
|
@ -3678,7 +3678,7 @@ STRB_INST : {
|
||||||
FETCH_INST;
|
FETCH_INST;
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
STRBT_INST : {
|
STRBT_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
ldst_inst* inst_cream = (ldst_inst*)inst_base->component;
|
ldst_inst* inst_cream = (ldst_inst*)inst_base->component;
|
||||||
inst_cream->get_addr(cpu, inst_cream->inst, addr);
|
inst_cream->get_addr(cpu, inst_cream->inst, addr);
|
||||||
|
@ -3695,7 +3695,7 @@ STRBT_INST : {
|
||||||
FETCH_INST;
|
FETCH_INST;
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
STRD_INST : {
|
STRD_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
ldst_inst* inst_cream = (ldst_inst*)inst_base->component;
|
ldst_inst* inst_cream = (ldst_inst*)inst_base->component;
|
||||||
inst_cream->get_addr(cpu, inst_cream->inst, addr);
|
inst_cream->get_addr(cpu, inst_cream->inst, addr);
|
||||||
|
@ -3710,7 +3710,7 @@ STRD_INST : {
|
||||||
FETCH_INST;
|
FETCH_INST;
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
STREX_INST : {
|
STREX_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
generic_arm_inst* inst_cream = (generic_arm_inst*)inst_base->component;
|
generic_arm_inst* inst_cream = (generic_arm_inst*)inst_base->component;
|
||||||
unsigned int write_addr = cpu->Reg[inst_cream->Rn];
|
unsigned int write_addr = cpu->Reg[inst_cream->Rn];
|
||||||
|
@ -3729,7 +3729,7 @@ STREX_INST : {
|
||||||
FETCH_INST;
|
FETCH_INST;
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
STREXB_INST : {
|
STREXB_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
generic_arm_inst* inst_cream = (generic_arm_inst*)inst_base->component;
|
generic_arm_inst* inst_cream = (generic_arm_inst*)inst_base->component;
|
||||||
unsigned int write_addr = cpu->Reg[inst_cream->Rn];
|
unsigned int write_addr = cpu->Reg[inst_cream->Rn];
|
||||||
|
@ -3748,7 +3748,7 @@ STREXB_INST : {
|
||||||
FETCH_INST;
|
FETCH_INST;
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
STREXD_INST : {
|
STREXD_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
generic_arm_inst* inst_cream = (generic_arm_inst*)inst_base->component;
|
generic_arm_inst* inst_cream = (generic_arm_inst*)inst_base->component;
|
||||||
unsigned int write_addr = cpu->Reg[inst_cream->Rn];
|
unsigned int write_addr = cpu->Reg[inst_cream->Rn];
|
||||||
|
@ -3777,7 +3777,7 @@ STREXD_INST : {
|
||||||
FETCH_INST;
|
FETCH_INST;
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
STREXH_INST : {
|
STREXH_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
generic_arm_inst* inst_cream = (generic_arm_inst*)inst_base->component;
|
generic_arm_inst* inst_cream = (generic_arm_inst*)inst_base->component;
|
||||||
unsigned int write_addr = cpu->Reg[inst_cream->Rn];
|
unsigned int write_addr = cpu->Reg[inst_cream->Rn];
|
||||||
|
@ -3796,7 +3796,7 @@ STREXH_INST : {
|
||||||
FETCH_INST;
|
FETCH_INST;
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
STRH_INST : {
|
STRH_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
ldst_inst* inst_cream = (ldst_inst*)inst_base->component;
|
ldst_inst* inst_cream = (ldst_inst*)inst_base->component;
|
||||||
inst_cream->get_addr(cpu, inst_cream->inst, addr);
|
inst_cream->get_addr(cpu, inst_cream->inst, addr);
|
||||||
|
@ -3809,7 +3809,7 @@ STRH_INST : {
|
||||||
FETCH_INST;
|
FETCH_INST;
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
STRT_INST : {
|
STRT_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
ldst_inst* inst_cream = (ldst_inst*)inst_base->component;
|
ldst_inst* inst_cream = (ldst_inst*)inst_base->component;
|
||||||
inst_cream->get_addr(cpu, inst_cream->inst, addr);
|
inst_cream->get_addr(cpu, inst_cream->inst, addr);
|
||||||
|
@ -3830,7 +3830,7 @@ STRT_INST : {
|
||||||
FETCH_INST;
|
FETCH_INST;
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
SUB_INST : {
|
SUB_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
sub_inst* const inst_cream = (sub_inst*)inst_base->component;
|
sub_inst* const inst_cream = (sub_inst*)inst_base->component;
|
||||||
|
|
||||||
|
@ -3862,7 +3862,7 @@ SUB_INST : {
|
||||||
FETCH_INST;
|
FETCH_INST;
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
SWI_INST : {
|
SWI_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
swi_inst* const inst_cream = (swi_inst*)inst_base->component;
|
swi_inst* const inst_cream = (swi_inst*)inst_base->component;
|
||||||
cpu->system.GetRunningCore().GetTimer().AddTicks(num_instrs);
|
cpu->system.GetRunningCore().GetTimer().AddTicks(num_instrs);
|
||||||
|
@ -3879,7 +3879,7 @@ SWI_INST : {
|
||||||
FETCH_INST;
|
FETCH_INST;
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
SWP_INST : {
|
SWP_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
swp_inst* inst_cream = (swp_inst*)inst_base->component;
|
swp_inst* inst_cream = (swp_inst*)inst_base->component;
|
||||||
|
|
||||||
|
@ -3894,7 +3894,7 @@ SWP_INST : {
|
||||||
FETCH_INST;
|
FETCH_INST;
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
SWPB_INST : {
|
SWPB_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
swp_inst* inst_cream = (swp_inst*)inst_base->component;
|
swp_inst* inst_cream = (swp_inst*)inst_base->component;
|
||||||
addr = RN;
|
addr = RN;
|
||||||
|
@ -3907,7 +3907,7 @@ SWPB_INST : {
|
||||||
FETCH_INST;
|
FETCH_INST;
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
SXTAB_INST : {
|
SXTAB_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
sxtab_inst* inst_cream = (sxtab_inst*)inst_base->component;
|
sxtab_inst* inst_cream = (sxtab_inst*)inst_base->component;
|
||||||
|
|
||||||
|
@ -3924,7 +3924,7 @@ SXTAB_INST : {
|
||||||
}
|
}
|
||||||
|
|
||||||
SXTAB16_INST:
|
SXTAB16_INST:
|
||||||
SXTB16_INST : {
|
SXTB16_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
sxtab_inst* const inst_cream = (sxtab_inst*)inst_base->component;
|
sxtab_inst* const inst_cream = (sxtab_inst*)inst_base->component;
|
||||||
|
|
||||||
|
@ -3955,7 +3955,7 @@ SXTB16_INST : {
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
|
|
||||||
SXTAH_INST : {
|
SXTAH_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
sxtah_inst* inst_cream = (sxtah_inst*)inst_base->component;
|
sxtah_inst* inst_cream = (sxtah_inst*)inst_base->component;
|
||||||
|
|
||||||
|
@ -3970,7 +3970,7 @@ SXTAH_INST : {
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
|
|
||||||
TEQ_INST : {
|
TEQ_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
teq_inst* const inst_cream = (teq_inst*)inst_base->component;
|
teq_inst* const inst_cream = (teq_inst*)inst_base->component;
|
||||||
|
|
||||||
|
@ -3991,7 +3991,7 @@ TEQ_INST : {
|
||||||
FETCH_INST;
|
FETCH_INST;
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
TST_INST : {
|
TST_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
tst_inst* const inst_cream = (tst_inst*)inst_base->component;
|
tst_inst* const inst_cream = (tst_inst*)inst_base->component;
|
||||||
|
|
||||||
|
@ -4018,7 +4018,7 @@ UADD16_INST:
|
||||||
UADDSUBX_INST:
|
UADDSUBX_INST:
|
||||||
USUB8_INST:
|
USUB8_INST:
|
||||||
USUB16_INST:
|
USUB16_INST:
|
||||||
USUBADDX_INST : {
|
USUBADDX_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
generic_arm_inst* const inst_cream = (generic_arm_inst*)inst_base->component;
|
generic_arm_inst* const inst_cream = (generic_arm_inst*)inst_base->component;
|
||||||
|
|
||||||
|
@ -4188,7 +4188,7 @@ UHADD16_INST:
|
||||||
UHADDSUBX_INST:
|
UHADDSUBX_INST:
|
||||||
UHSUBADDX_INST:
|
UHSUBADDX_INST:
|
||||||
UHSUB8_INST:
|
UHSUB8_INST:
|
||||||
UHSUB16_INST : {
|
UHSUB16_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
generic_arm_inst* const inst_cream = (generic_arm_inst*)inst_base->component;
|
generic_arm_inst* const inst_cream = (generic_arm_inst*)inst_base->component;
|
||||||
const u32 rm_val = RM;
|
const u32 rm_val = RM;
|
||||||
|
@ -4261,7 +4261,7 @@ UHSUB16_INST : {
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
|
|
||||||
UMAAL_INST : {
|
UMAAL_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
umaal_inst* const inst_cream = (umaal_inst*)inst_base->component;
|
umaal_inst* const inst_cream = (umaal_inst*)inst_base->component;
|
||||||
const u64 rm = RM;
|
const u64 rm = RM;
|
||||||
|
@ -4278,7 +4278,7 @@ UMAAL_INST : {
|
||||||
FETCH_INST;
|
FETCH_INST;
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
UMLAL_INST : {
|
UMLAL_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
umlal_inst* inst_cream = (umlal_inst*)inst_base->component;
|
umlal_inst* inst_cream = (umlal_inst*)inst_base->component;
|
||||||
unsigned long long int rm = RM;
|
unsigned long long int rm = RM;
|
||||||
|
@ -4300,7 +4300,7 @@ UMLAL_INST : {
|
||||||
FETCH_INST;
|
FETCH_INST;
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
UMULL_INST : {
|
UMULL_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
umull_inst* inst_cream = (umull_inst*)inst_base->component;
|
umull_inst* inst_cream = (umull_inst*)inst_base->component;
|
||||||
unsigned long long int rm = RM;
|
unsigned long long int rm = RM;
|
||||||
|
@ -4319,13 +4319,13 @@ UMULL_INST : {
|
||||||
FETCH_INST;
|
FETCH_INST;
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
B_2_THUMB : {
|
B_2_THUMB: {
|
||||||
b_2_thumb* inst_cream = (b_2_thumb*)inst_base->component;
|
b_2_thumb* inst_cream = (b_2_thumb*)inst_base->component;
|
||||||
cpu->Reg[15] = cpu->Reg[15] + 4 + inst_cream->imm;
|
cpu->Reg[15] = cpu->Reg[15] + 4 + inst_cream->imm;
|
||||||
INC_PC(sizeof(b_2_thumb));
|
INC_PC(sizeof(b_2_thumb));
|
||||||
goto DISPATCH;
|
goto DISPATCH;
|
||||||
}
|
}
|
||||||
B_COND_THUMB : {
|
B_COND_THUMB: {
|
||||||
b_cond_thumb* inst_cream = (b_cond_thumb*)inst_base->component;
|
b_cond_thumb* inst_cream = (b_cond_thumb*)inst_base->component;
|
||||||
|
|
||||||
if (CondPassed(cpu, inst_cream->cond))
|
if (CondPassed(cpu, inst_cream->cond))
|
||||||
|
@ -4336,7 +4336,7 @@ B_COND_THUMB : {
|
||||||
INC_PC(sizeof(b_cond_thumb));
|
INC_PC(sizeof(b_cond_thumb));
|
||||||
goto DISPATCH;
|
goto DISPATCH;
|
||||||
}
|
}
|
||||||
BL_1_THUMB : {
|
BL_1_THUMB: {
|
||||||
bl_1_thumb* inst_cream = (bl_1_thumb*)inst_base->component;
|
bl_1_thumb* inst_cream = (bl_1_thumb*)inst_base->component;
|
||||||
cpu->Reg[14] = cpu->Reg[15] + 4 + inst_cream->imm;
|
cpu->Reg[14] = cpu->Reg[15] + 4 + inst_cream->imm;
|
||||||
cpu->Reg[15] += cpu->GetInstructionSize();
|
cpu->Reg[15] += cpu->GetInstructionSize();
|
||||||
|
@ -4344,7 +4344,7 @@ BL_1_THUMB : {
|
||||||
FETCH_INST;
|
FETCH_INST;
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
BL_2_THUMB : {
|
BL_2_THUMB: {
|
||||||
bl_2_thumb* inst_cream = (bl_2_thumb*)inst_base->component;
|
bl_2_thumb* inst_cream = (bl_2_thumb*)inst_base->component;
|
||||||
int tmp = ((cpu->Reg[15] + 2) | 1);
|
int tmp = ((cpu->Reg[15] + 2) | 1);
|
||||||
cpu->Reg[15] = (cpu->Reg[14] + inst_cream->imm);
|
cpu->Reg[15] = (cpu->Reg[14] + inst_cream->imm);
|
||||||
|
@ -4352,7 +4352,7 @@ BL_2_THUMB : {
|
||||||
INC_PC(sizeof(bl_2_thumb));
|
INC_PC(sizeof(bl_2_thumb));
|
||||||
goto DISPATCH;
|
goto DISPATCH;
|
||||||
}
|
}
|
||||||
BLX_1_THUMB : {
|
BLX_1_THUMB: {
|
||||||
// BLX 1 for armv5t and above
|
// BLX 1 for armv5t and above
|
||||||
u32 tmp = cpu->Reg[15];
|
u32 tmp = cpu->Reg[15];
|
||||||
blx_1_thumb* inst_cream = (blx_1_thumb*)inst_base->component;
|
blx_1_thumb* inst_cream = (blx_1_thumb*)inst_base->component;
|
||||||
|
@ -4368,7 +4368,7 @@ UQADD16_INST:
|
||||||
UQADDSUBX_INST:
|
UQADDSUBX_INST:
|
||||||
UQSUB8_INST:
|
UQSUB8_INST:
|
||||||
UQSUB16_INST:
|
UQSUB16_INST:
|
||||||
UQSUBADDX_INST : {
|
UQSUBADDX_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
generic_arm_inst* const inst_cream = (generic_arm_inst*)inst_base->component;
|
generic_arm_inst* const inst_cream = (generic_arm_inst*)inst_base->component;
|
||||||
|
|
||||||
|
@ -4424,7 +4424,7 @@ UQSUBADDX_INST : {
|
||||||
}
|
}
|
||||||
|
|
||||||
USAD8_INST:
|
USAD8_INST:
|
||||||
USADA8_INST : {
|
USADA8_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
generic_arm_inst* inst_cream = (generic_arm_inst*)inst_base->component;
|
generic_arm_inst* inst_cream = (generic_arm_inst*)inst_base->component;
|
||||||
|
|
||||||
|
@ -4455,7 +4455,7 @@ USADA8_INST : {
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
|
|
||||||
USAT_INST : {
|
USAT_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
ssat_inst* const inst_cream = (ssat_inst*)inst_base->component;
|
ssat_inst* const inst_cream = (ssat_inst*)inst_base->component;
|
||||||
|
|
||||||
|
@ -4487,7 +4487,7 @@ USAT_INST : {
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
|
|
||||||
USAT16_INST : {
|
USAT16_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
ssat_inst* const inst_cream = (ssat_inst*)inst_base->component;
|
ssat_inst* const inst_cream = (ssat_inst*)inst_base->component;
|
||||||
const u8 saturate_to = inst_cream->sat_imm;
|
const u8 saturate_to = inst_cream->sat_imm;
|
||||||
|
@ -4509,7 +4509,7 @@ USAT16_INST : {
|
||||||
}
|
}
|
||||||
|
|
||||||
UXTAB16_INST:
|
UXTAB16_INST:
|
||||||
UXTB16_INST : {
|
UXTB16_INST: {
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
uxtab_inst* const inst_cream = (uxtab_inst*)inst_base->component;
|
uxtab_inst* const inst_cream = (uxtab_inst*)inst_base->component;
|
||||||
|
|
||||||
|
@ -4538,7 +4538,7 @@ UXTB16_INST : {
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
|
|
||||||
WFE_INST : {
|
WFE_INST: {
|
||||||
// Stubbed, as WFE is a hint instruction.
|
// Stubbed, as WFE is a hint instruction.
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
LOG_TRACE(Core_ARM11, "WFE executed.");
|
LOG_TRACE(Core_ARM11, "WFE executed.");
|
||||||
|
@ -4550,7 +4550,7 @@ WFE_INST : {
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
|
|
||||||
WFI_INST : {
|
WFI_INST: {
|
||||||
// Stubbed, as WFI is a hint instruction.
|
// Stubbed, as WFI is a hint instruction.
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
LOG_TRACE(Core_ARM11, "WFI executed.");
|
LOG_TRACE(Core_ARM11, "WFI executed.");
|
||||||
|
@ -4562,7 +4562,7 @@ WFI_INST : {
|
||||||
GOTO_NEXT_INST;
|
GOTO_NEXT_INST;
|
||||||
}
|
}
|
||||||
|
|
||||||
YIELD_INST : {
|
YIELD_INST: {
|
||||||
// Stubbed, as YIELD is a hint instruction.
|
// Stubbed, as YIELD is a hint instruction.
|
||||||
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) {
|
||||||
LOG_TRACE(Core_ARM11, "YIELD executed.");
|
LOG_TRACE(Core_ARM11, "YIELD executed.");
|
||||||
|
@ -4578,12 +4578,12 @@ YIELD_INST : {
|
||||||
#include "core/arm/skyeye_common/vfp/vfpinstr.cpp"
|
#include "core/arm/skyeye_common/vfp/vfpinstr.cpp"
|
||||||
#undef VFP_INTERPRETER_IMPL
|
#undef VFP_INTERPRETER_IMPL
|
||||||
|
|
||||||
END : {
|
END: {
|
||||||
SAVE_NZCVT;
|
SAVE_NZCVT;
|
||||||
cpu->NumInstrsToExecute = 0;
|
cpu->NumInstrsToExecute = 0;
|
||||||
return num_instrs;
|
return num_instrs;
|
||||||
}
|
}
|
||||||
INIT_INST_LENGTH : {
|
INIT_INST_LENGTH: {
|
||||||
cpu->NumInstrsToExecute = 0;
|
cpu->NumInstrsToExecute = 0;
|
||||||
return num_instrs;
|
return num_instrs;
|
||||||
}
|
}
|
||||||
|
|
|
@ -83,7 +83,7 @@ enum : u32 {
|
||||||
#define vfp_get_sn(inst) ((inst & 0x000f0000) >> 15 | (inst & (1 << 7)) >> 7)
|
#define vfp_get_sn(inst) ((inst & 0x000f0000) >> 15 | (inst & (1 << 7)) >> 7)
|
||||||
#define vfp_get_dn(inst) ((inst & 0x000f0000) >> 16 | (inst & (1 << 7)) >> 3)
|
#define vfp_get_dn(inst) ((inst & 0x000f0000) >> 16 | (inst & (1 << 7)) >> 3)
|
||||||
|
|
||||||
#define vfp_single(inst) (((inst)&0x0000f00) == 0xa00)
|
#define vfp_single(inst) (((inst) & 0x0000f00) == 0xa00)
|
||||||
|
|
||||||
inline u32 vfp_shiftright32jamming(u32 val, unsigned int shift) {
|
inline u32 vfp_shiftright32jamming(u32 val, unsigned int shift) {
|
||||||
if (shift) {
|
if (shift) {
|
||||||
|
@ -222,7 +222,7 @@ struct vfp_single {
|
||||||
#define VFP_SINGLE_SIGNIFICAND_QNAN (1 << (VFP_SINGLE_MANTISSA_BITS - 1 + VFP_SINGLE_LOW_BITS))
|
#define VFP_SINGLE_SIGNIFICAND_QNAN (1 << (VFP_SINGLE_MANTISSA_BITS - 1 + VFP_SINGLE_LOW_BITS))
|
||||||
|
|
||||||
// Operations on packed single-precision numbers
|
// Operations on packed single-precision numbers
|
||||||
#define vfp_single_packed_sign(v) ((v)&0x80000000)
|
#define vfp_single_packed_sign(v) ((v) & 0x80000000)
|
||||||
#define vfp_single_packed_negate(v) ((v) ^ 0x80000000)
|
#define vfp_single_packed_negate(v) ((v) ^ 0x80000000)
|
||||||
#define vfp_single_packed_abs(v) ((v) & ~0x80000000)
|
#define vfp_single_packed_abs(v) ((v) & ~0x80000000)
|
||||||
#define vfp_single_packed_exponent(v) \
|
#define vfp_single_packed_exponent(v) \
|
||||||
|
@ -376,7 +376,7 @@ u32 vfp_estimate_sqrt_significand(u32 exponent, u32 significand);
|
||||||
// exception mask, in case nothing handles an instruction. This
|
// exception mask, in case nothing handles an instruction. This
|
||||||
// doesn't include the NAN flag, which get masked out before
|
// doesn't include the NAN flag, which get masked out before
|
||||||
// we check for an error.
|
// we check for an error.
|
||||||
#define VFP_EXCEPTION_ERROR ((u32)-1 & ~VFP_NAN_FLAG)
|
#define VFP_EXCEPTION_ERROR ((u32) - 1 & ~VFP_NAN_FLAG)
|
||||||
|
|
||||||
// A flag to tell vfp instruction type.
|
// A flag to tell vfp instruction type.
|
||||||
// OP_SCALAR - This operation always operates in scalar mode
|
// OP_SCALAR - This operation always operates in scalar mode
|
||||||
|
|
|
@ -1164,8 +1164,8 @@ static struct op fops[] = {
|
||||||
{vfp_double_fnmul, 0}, {vfp_double_fsub, 0}, {vfp_double_fdiv, 0},
|
{vfp_double_fnmul, 0}, {vfp_double_fsub, 0}, {vfp_double_fdiv, 0},
|
||||||
};
|
};
|
||||||
|
|
||||||
#define FREG_BANK(x) ((x)&0x0c)
|
#define FREG_BANK(x) ((x) & 0x0c)
|
||||||
#define FREG_IDX(x) ((x)&3)
|
#define FREG_IDX(x) ((x) & 3)
|
||||||
|
|
||||||
u32 vfp_double_cpdo(ARMul_State* state, u32 inst, u32 fpscr) {
|
u32 vfp_double_cpdo(ARMul_State* state, u32 inst, u32 fpscr) {
|
||||||
u32 op = inst & FOP_MASK;
|
u32 op = inst & FOP_MASK;
|
||||||
|
|
|
@ -1194,8 +1194,8 @@ static struct op fops[] = {
|
||||||
{vfp_single_fnmul, 0}, {vfp_single_fsub, 0}, {vfp_single_fdiv, 0},
|
{vfp_single_fnmul, 0}, {vfp_single_fsub, 0}, {vfp_single_fdiv, 0},
|
||||||
};
|
};
|
||||||
|
|
||||||
#define FREG_BANK(x) ((x)&0x18)
|
#define FREG_BANK(x) ((x) & 0x18)
|
||||||
#define FREG_IDX(x) ((x)&7)
|
#define FREG_IDX(x) ((x) & 7)
|
||||||
|
|
||||||
u32 vfp_single_cpdo(ARMul_State* state, u32 inst, u32 fpscr) {
|
u32 vfp_single_cpdo(ARMul_State* state, u32 inst, u32 fpscr) {
|
||||||
u32 op = inst & FOP_MASK;
|
u32 op = inst & FOP_MASK;
|
||||||
|
|
|
@ -689,7 +689,7 @@ void System::serialize(Archive& ar, const unsigned int file_version) {
|
||||||
if (Archive::is_saving::value) {
|
if (Archive::is_saving::value) {
|
||||||
num_cores = this->GetNumCores();
|
num_cores = this->GetNumCores();
|
||||||
}
|
}
|
||||||
ar& num_cores;
|
ar & num_cores;
|
||||||
|
|
||||||
if (Archive::is_loading::value) {
|
if (Archive::is_loading::value) {
|
||||||
// When loading, we want to make sure any lingering state gets cleared out before we begin.
|
// When loading, we want to make sure any lingering state gets cleared out before we begin.
|
||||||
|
@ -725,7 +725,7 @@ void System::serialize(Archive& ar, const unsigned int file_version) {
|
||||||
ar&* memory.get();
|
ar&* memory.get();
|
||||||
ar&* kernel.get();
|
ar&* kernel.get();
|
||||||
ar&* gpu.get();
|
ar&* gpu.get();
|
||||||
ar& movie;
|
ar & movie;
|
||||||
|
|
||||||
// This needs to be set from somewhere - might as well be here!
|
// This needs to be set from somewhere - might as well be here!
|
||||||
if (Archive::is_loading::value) {
|
if (Archive::is_loading::value) {
|
||||||
|
|
|
@ -154,18 +154,18 @@ public:
|
||||||
private:
|
private:
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void save(Archive& ar, const unsigned int) const {
|
void save(Archive& ar, const unsigned int) const {
|
||||||
ar& time;
|
ar & time;
|
||||||
ar& fifo_order;
|
ar & fifo_order;
|
||||||
ar& user_data;
|
ar & user_data;
|
||||||
std::string name = *(type->name);
|
std::string name = *(type->name);
|
||||||
ar << name;
|
ar << name;
|
||||||
}
|
}
|
||||||
|
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void load(Archive& ar, const unsigned int) {
|
void load(Archive& ar, const unsigned int) {
|
||||||
ar& time;
|
ar & time;
|
||||||
ar& fifo_order;
|
ar & fifo_order;
|
||||||
ar& user_data;
|
ar & user_data;
|
||||||
std::string name;
|
std::string name;
|
||||||
ar >> name;
|
ar >> name;
|
||||||
type = Global<Timing>().RegisterEvent(name, nullptr);
|
type = Global<Timing>().RegisterEvent(name, nullptr);
|
||||||
|
@ -239,12 +239,12 @@ public:
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int) {
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
MoveEvents();
|
MoveEvents();
|
||||||
ar& event_queue;
|
ar & event_queue;
|
||||||
ar& event_fifo_id;
|
ar & event_fifo_id;
|
||||||
ar& slice_length;
|
ar & slice_length;
|
||||||
ar& downcount;
|
ar & downcount;
|
||||||
ar& executed_ticks;
|
ar & executed_ticks;
|
||||||
ar& idled_cycles;
|
ar & idled_cycles;
|
||||||
}
|
}
|
||||||
friend class boost::serialization::access;
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
@ -308,8 +308,8 @@ private:
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int file_version) {
|
void serialize(Archive& ar, const unsigned int file_version) {
|
||||||
// event_types set during initialization of other things
|
// event_types set during initialization of other things
|
||||||
ar& timers;
|
ar & timers;
|
||||||
ar& current_timer;
|
ar & current_timer;
|
||||||
if (Archive::is_loading::value) {
|
if (Archive::is_loading::value) {
|
||||||
event_queue_locked = true;
|
event_queue_locked = true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -70,20 +70,20 @@ private:
|
||||||
|
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int) {
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
ar& type;
|
ar & type;
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case LowPathType::Binary:
|
case LowPathType::Binary:
|
||||||
ar& binary;
|
ar & binary;
|
||||||
break;
|
break;
|
||||||
case LowPathType::Char:
|
case LowPathType::Char:
|
||||||
ar& string;
|
ar & string;
|
||||||
break;
|
break;
|
||||||
case LowPathType::Wchar: {
|
case LowPathType::Wchar: {
|
||||||
std::vector<char16_t> data;
|
std::vector<char16_t> data;
|
||||||
if (Archive::is_saving::value) {
|
if (Archive::is_saving::value) {
|
||||||
std::copy(u16str.begin(), u16str.end(), std::back_inserter(data));
|
std::copy(u16str.begin(), u16str.end(), std::back_inserter(data));
|
||||||
}
|
}
|
||||||
ar& data;
|
ar & data;
|
||||||
if (Archive::is_loading::value) {
|
if (Archive::is_loading::value) {
|
||||||
u16str = std::u16string(data.data(), data.size());
|
u16str = std::u16string(data.data(), data.size());
|
||||||
}
|
}
|
||||||
|
@ -202,7 +202,7 @@ protected:
|
||||||
private:
|
private:
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int) {
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
ar& delay_generator;
|
ar & delay_generator;
|
||||||
}
|
}
|
||||||
friend class boost::serialization::access;
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
|
|
@ -65,8 +65,8 @@ private:
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int) {
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
ar& boost::serialization::base_object<ArchiveFactory>(*this);
|
ar& boost::serialization::base_object<ArchiveFactory>(*this);
|
||||||
ar& type;
|
ar & type;
|
||||||
ar& mount_point;
|
ar & mount_point;
|
||||||
}
|
}
|
||||||
friend class boost::serialization::access;
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
|
|
@ -70,8 +70,8 @@ private:
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int) {
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
ar& boost::serialization::base_object<ArchiveBackend>(*this);
|
ar& boost::serialization::base_object<ArchiveBackend>(*this);
|
||||||
ar& title_id;
|
ar & title_id;
|
||||||
ar& media_type;
|
ar & media_type;
|
||||||
}
|
}
|
||||||
friend class boost::serialization::access;
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
@ -99,7 +99,7 @@ private:
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int) {
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
ar& boost::serialization::base_object<FileBackend>(*this);
|
ar& boost::serialization::base_object<FileBackend>(*this);
|
||||||
ar& file_buffer;
|
ar & file_buffer;
|
||||||
}
|
}
|
||||||
friend class boost::serialization::access;
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
|
|
@ -33,7 +33,7 @@ private:
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int) {
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
ar& boost::serialization::base_object<ArchiveFactory>(*this);
|
ar& boost::serialization::base_object<ArchiveFactory>(*this);
|
||||||
ar& sd_savedata_source;
|
ar & sd_savedata_source;
|
||||||
}
|
}
|
||||||
friend class boost::serialization::access;
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
@ -60,7 +60,7 @@ private:
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int) {
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
ar& boost::serialization::base_object<ArchiveFactory>(*this);
|
ar& boost::serialization::base_object<ArchiveFactory>(*this);
|
||||||
ar& sd_savedata_source;
|
ar & sd_savedata_source;
|
||||||
}
|
}
|
||||||
friend class boost::serialization::access;
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
|
|
@ -32,7 +32,7 @@ private:
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int) {
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
ar& boost::serialization::base_object<ArchiveFactory>(*this);
|
ar& boost::serialization::base_object<ArchiveFactory>(*this);
|
||||||
ar& sd_savedata_source;
|
ar & sd_savedata_source;
|
||||||
}
|
}
|
||||||
friend class boost::serialization::access;
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
|
|
@ -47,7 +47,7 @@ protected:
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int) {
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
ar& boost::serialization::base_object<ArchiveBackend>(*this);
|
ar& boost::serialization::base_object<ArchiveBackend>(*this);
|
||||||
ar& mount_point;
|
ar & mount_point;
|
||||||
}
|
}
|
||||||
friend class boost::serialization::access;
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
@ -79,7 +79,7 @@ private:
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int) {
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
ar& boost::serialization::base_object<ArchiveFactory>(*this);
|
ar& boost::serialization::base_object<ArchiveFactory>(*this);
|
||||||
ar& sdmc_directory;
|
ar & sdmc_directory;
|
||||||
}
|
}
|
||||||
friend class boost::serialization::access;
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
|
|
@ -65,7 +65,7 @@ private:
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int) {
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
ar& boost::serialization::base_object<ArchiveFactory>(*this);
|
ar& boost::serialization::base_object<ArchiveFactory>(*this);
|
||||||
ar& sdmc_directory;
|
ar & sdmc_directory;
|
||||||
}
|
}
|
||||||
friend class boost::serialization::access;
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
|
|
@ -79,7 +79,7 @@ private:
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int) {
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
ar& boost::serialization::base_object<FileBackend>(*this);
|
ar& boost::serialization::base_object<FileBackend>(*this);
|
||||||
ar& data;
|
ar & data;
|
||||||
}
|
}
|
||||||
friend class boost::serialization::access;
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
@ -241,7 +241,7 @@ private:
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int) {
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
ar& boost::serialization::base_object<ArchiveBackend>(*this);
|
ar& boost::serialization::base_object<ArchiveBackend>(*this);
|
||||||
ar& ncch_data;
|
ar & ncch_data;
|
||||||
}
|
}
|
||||||
friend class boost::serialization::access;
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
|
|
@ -29,11 +29,11 @@ struct NCCHData {
|
||||||
private:
|
private:
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int) {
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
ar& icon;
|
ar & icon;
|
||||||
ar& logo;
|
ar & logo;
|
||||||
ar& banner;
|
ar & banner;
|
||||||
ar& romfs_file;
|
ar & romfs_file;
|
||||||
ar& update_romfs_file;
|
ar & update_romfs_file;
|
||||||
}
|
}
|
||||||
friend class boost::serialization::access;
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
@ -61,7 +61,7 @@ private:
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int) {
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
ar& boost::serialization::base_object<ArchiveFactory>(*this);
|
ar& boost::serialization::base_object<ArchiveFactory>(*this);
|
||||||
ar& ncch_data;
|
ar & ncch_data;
|
||||||
}
|
}
|
||||||
friend class boost::serialization::access;
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
|
|
@ -30,7 +30,7 @@ private:
|
||||||
ArchiveSource_SDSaveData() = default;
|
ArchiveSource_SDSaveData() = default;
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int) {
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
ar& mount_point;
|
ar & mount_point;
|
||||||
}
|
}
|
||||||
friend class boost::serialization::access;
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
|
|
@ -35,7 +35,7 @@ private:
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int) {
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
ar& boost::serialization::base_object<ArchiveFactory>(*this);
|
ar& boost::serialization::base_object<ArchiveFactory>(*this);
|
||||||
ar& base_path;
|
ar & base_path;
|
||||||
}
|
}
|
||||||
friend class boost::serialization::access;
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
|
|
@ -50,8 +50,8 @@ private:
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int) {
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
ar& boost::serialization::base_object<FileBackend>(*this);
|
ar& boost::serialization::base_object<FileBackend>(*this);
|
||||||
ar& mode.hex;
|
ar & mode.hex;
|
||||||
ar& file;
|
ar & file;
|
||||||
}
|
}
|
||||||
friend class boost::serialization::access;
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
@ -83,12 +83,12 @@ private:
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int) {
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
ar& boost::serialization::base_object<DirectoryBackend>(*this);
|
ar& boost::serialization::base_object<DirectoryBackend>(*this);
|
||||||
ar& directory;
|
ar & directory;
|
||||||
u64 child_index;
|
u64 child_index;
|
||||||
if (Archive::is_saving::value) {
|
if (Archive::is_saving::value) {
|
||||||
child_index = children_iterator - directory.children.begin();
|
child_index = children_iterator - directory.children.begin();
|
||||||
}
|
}
|
||||||
ar& child_index;
|
ar & child_index;
|
||||||
if (Archive::is_loading::value) {
|
if (Archive::is_loading::value) {
|
||||||
children_iterator = directory.children.begin() + child_index;
|
children_iterator = directory.children.begin() + child_index;
|
||||||
}
|
}
|
||||||
|
|
|
@ -105,7 +105,7 @@ protected:
|
||||||
|
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int) {
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
ar& delay_generator;
|
ar & delay_generator;
|
||||||
}
|
}
|
||||||
friend class boost::serialization::access;
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
|
|
@ -147,7 +147,7 @@ private:
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int) {
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
ar& boost::serialization::base_object<FileBackend>(*this);
|
ar& boost::serialization::base_object<FileBackend>(*this);
|
||||||
ar& romfs_file;
|
ar & romfs_file;
|
||||||
}
|
}
|
||||||
friend class boost::serialization::access;
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
@ -187,9 +187,9 @@ private:
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int) {
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
ar& boost::serialization::base_object<FileBackend>(*this);
|
ar& boost::serialization::base_object<FileBackend>(*this);
|
||||||
ar& romfs_file;
|
ar & romfs_file;
|
||||||
ar& data_offset;
|
ar & data_offset;
|
||||||
ar& data_size;
|
ar & data_size;
|
||||||
}
|
}
|
||||||
friend class boost::serialization::access;
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
|
|
@ -141,10 +141,10 @@ private:
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int) {
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
ar& boost::serialization::base_object<RomFSReader>(*this);
|
ar& boost::serialization::base_object<RomFSReader>(*this);
|
||||||
ar& romfs;
|
ar & romfs;
|
||||||
ar& patch_path;
|
ar & patch_path;
|
||||||
ar& patch_ext_path;
|
ar & patch_ext_path;
|
||||||
ar& load_relocations;
|
ar & load_relocations;
|
||||||
if (Archive::is_loading::value) {
|
if (Archive::is_loading::value) {
|
||||||
Load();
|
Load();
|
||||||
}
|
}
|
||||||
|
|
|
@ -86,13 +86,13 @@ private:
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int) {
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
ar& boost::serialization::base_object<RomFSReader>(*this);
|
ar& boost::serialization::base_object<RomFSReader>(*this);
|
||||||
ar& is_encrypted;
|
ar & is_encrypted;
|
||||||
ar& file;
|
ar & file;
|
||||||
ar& key;
|
ar & key;
|
||||||
ar& ctr;
|
ar & ctr;
|
||||||
ar& file_offset;
|
ar & file_offset;
|
||||||
ar& crypto_offset;
|
ar & crypto_offset;
|
||||||
ar& data_size;
|
ar & data_size;
|
||||||
}
|
}
|
||||||
friend class boost::serialization::access;
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
|
|
@ -43,8 +43,8 @@ private:
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int) {
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
ar& boost::serialization::base_object<ArchiveBackend>(*this);
|
ar& boost::serialization::base_object<ArchiveBackend>(*this);
|
||||||
ar& mount_point;
|
ar & mount_point;
|
||||||
ar& allow_zero_size_create;
|
ar & allow_zero_size_create;
|
||||||
}
|
}
|
||||||
friend class boost::serialization::access;
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
|
|
@ -83,13 +83,13 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Inform the driver to swap the front/back buffers and present the current image
|
/// Inform the driver to swap the front/back buffers and present the current image
|
||||||
virtual void SwapBuffers(){};
|
virtual void SwapBuffers() {};
|
||||||
|
|
||||||
/// Makes the graphics context current for the caller thread
|
/// Makes the graphics context current for the caller thread
|
||||||
virtual void MakeCurrent(){};
|
virtual void MakeCurrent() {};
|
||||||
|
|
||||||
/// Releases (dunno if this is the "right" word) the context from the caller thread
|
/// Releases (dunno if this is the "right" word) the context from the caller thread
|
||||||
virtual void DoneCurrent(){};
|
virtual void DoneCurrent() {};
|
||||||
|
|
||||||
/// Gets the GPU driver library (used by Android only)
|
/// Gets the GPU driver library (used by Android only)
|
||||||
virtual std::shared_ptr<Common::DynamicLibrary> GetDriverLibrary() {
|
virtual std::shared_ptr<Common::DynamicLibrary> GetDriverLibrary() {
|
||||||
|
@ -183,12 +183,12 @@ public:
|
||||||
/**
|
/**
|
||||||
* Save current GraphicsContext.
|
* Save current GraphicsContext.
|
||||||
*/
|
*/
|
||||||
virtual void SaveContext(){};
|
virtual void SaveContext() {};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Restore saved GraphicsContext.
|
* Restore saved GraphicsContext.
|
||||||
*/
|
*/
|
||||||
virtual void RestoreContext(){};
|
virtual void RestoreContext() {};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Signal that a touch pressed event has occurred (e.g. mouse click pressed)
|
* Signal that a touch pressed event has occurred (e.g. mouse click pressed)
|
||||||
|
|
|
@ -193,10 +193,10 @@ Result AddressArbiter::ArbitrateAddress(std::shared_ptr<Thread> thread, Arbitrat
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void AddressArbiter::serialize(Archive& ar, const unsigned int) {
|
void AddressArbiter::serialize(Archive& ar, const unsigned int) {
|
||||||
ar& boost::serialization::base_object<Object>(*this);
|
ar& boost::serialization::base_object<Object>(*this);
|
||||||
ar& name;
|
ar & name;
|
||||||
ar& waiting_threads;
|
ar & waiting_threads;
|
||||||
ar& timeout_callback;
|
ar & timeout_callback;
|
||||||
ar& resource_limit;
|
ar & resource_limit;
|
||||||
}
|
}
|
||||||
SERIALIZE_IMPL(AddressArbiter)
|
SERIALIZE_IMPL(AddressArbiter)
|
||||||
|
|
||||||
|
|
|
@ -53,10 +53,10 @@ void ClientPort::ConnectionClosed() {
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void ClientPort::serialize(Archive& ar, const unsigned int) {
|
void ClientPort::serialize(Archive& ar, const unsigned int) {
|
||||||
ar& boost::serialization::base_object<Object>(*this);
|
ar& boost::serialization::base_object<Object>(*this);
|
||||||
ar& server_port;
|
ar & server_port;
|
||||||
ar& max_sessions;
|
ar & max_sessions;
|
||||||
ar& active_sessions;
|
ar & active_sessions;
|
||||||
ar& name;
|
ar & name;
|
||||||
}
|
}
|
||||||
SERIALIZE_IMPL(ClientPort)
|
SERIALIZE_IMPL(ClientPort)
|
||||||
|
|
||||||
|
|
|
@ -59,8 +59,8 @@ Result ClientSession::SendSyncRequest(std::shared_ptr<Thread> thread) {
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void ClientSession::serialize(Archive& ar, const unsigned int) {
|
void ClientSession::serialize(Archive& ar, const unsigned int) {
|
||||||
ar& boost::serialization::base_object<Object>(*this);
|
ar& boost::serialization::base_object<Object>(*this);
|
||||||
ar& name;
|
ar & name;
|
||||||
ar& parent;
|
ar & parent;
|
||||||
}
|
}
|
||||||
SERIALIZE_IMPL(ClientSession)
|
SERIALIZE_IMPL(ClientSession)
|
||||||
|
|
||||||
|
|
|
@ -63,10 +63,10 @@ void Event::WakeupAllWaitingThreads() {
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void Event::serialize(Archive& ar, const unsigned int) {
|
void Event::serialize(Archive& ar, const unsigned int) {
|
||||||
ar& boost::serialization::base_object<WaitObject>(*this);
|
ar& boost::serialization::base_object<WaitObject>(*this);
|
||||||
ar& reset_type;
|
ar & reset_type;
|
||||||
ar& signaled;
|
ar & signaled;
|
||||||
ar& name;
|
ar & name;
|
||||||
ar& resource_limit;
|
ar & resource_limit;
|
||||||
}
|
}
|
||||||
SERIALIZE_IMPL(Event)
|
SERIALIZE_IMPL(Event)
|
||||||
|
|
||||||
|
|
|
@ -101,10 +101,10 @@ void HandleTable::Clear() {
|
||||||
|
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void HandleTable::serialize(Archive& ar, const unsigned int) {
|
void HandleTable::serialize(Archive& ar, const unsigned int) {
|
||||||
ar& objects;
|
ar & objects;
|
||||||
ar& generations;
|
ar & generations;
|
||||||
ar& next_generation;
|
ar & next_generation;
|
||||||
ar& next_free_slot;
|
ar & next_free_slot;
|
||||||
}
|
}
|
||||||
SERIALIZE_IMPL(HandleTable)
|
SERIALIZE_IMPL(HandleTable)
|
||||||
|
|
||||||
|
|
|
@ -64,8 +64,8 @@ private:
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int) {
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
ar& boost::serialization::base_object<Kernel::WakeupCallback>(*this);
|
ar& boost::serialization::base_object<Kernel::WakeupCallback>(*this);
|
||||||
ar& callback;
|
ar & callback;
|
||||||
ar& context;
|
ar & context;
|
||||||
}
|
}
|
||||||
friend class boost::serialization::access;
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
@ -89,7 +89,7 @@ void SessionRequestHandler::ClientDisconnected(std::shared_ptr<ServerSession> se
|
||||||
|
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void SessionRequestHandler::serialize(Archive& ar, const unsigned int) {
|
void SessionRequestHandler::serialize(Archive& ar, const unsigned int) {
|
||||||
ar& connected_sessions;
|
ar & connected_sessions;
|
||||||
}
|
}
|
||||||
SERIALIZE_IMPL(SessionRequestHandler)
|
SERIALIZE_IMPL(SessionRequestHandler)
|
||||||
|
|
||||||
|
@ -99,8 +99,8 @@ SERIALIZE_IMPL(SessionRequestHandler::SessionDataBase)
|
||||||
|
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void SessionRequestHandler::SessionInfo::serialize(Archive& ar, const unsigned int) {
|
void SessionRequestHandler::SessionInfo::serialize(Archive& ar, const unsigned int) {
|
||||||
ar& session;
|
ar & session;
|
||||||
ar& data;
|
ar & data;
|
||||||
}
|
}
|
||||||
SERIALIZE_IMPL(SessionRequestHandler::SessionInfo)
|
SERIALIZE_IMPL(SessionRequestHandler::SessionInfo)
|
||||||
|
|
||||||
|
@ -324,12 +324,12 @@ void HLERequestContext::ReportUnimplemented() const {
|
||||||
|
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void HLERequestContext::serialize(Archive& ar, const unsigned int) {
|
void HLERequestContext::serialize(Archive& ar, const unsigned int) {
|
||||||
ar& cmd_buf;
|
ar & cmd_buf;
|
||||||
ar& session;
|
ar & session;
|
||||||
ar& thread;
|
ar & thread;
|
||||||
ar& request_handles;
|
ar & request_handles;
|
||||||
ar& static_buffers;
|
ar & static_buffers;
|
||||||
ar& request_mapped_buffers;
|
ar & request_mapped_buffers;
|
||||||
}
|
}
|
||||||
SERIALIZE_IMPL(HLERequestContext)
|
SERIALIZE_IMPL(HLERequestContext)
|
||||||
|
|
||||||
|
|
|
@ -152,11 +152,11 @@ private:
|
||||||
|
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int) {
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
ar& id;
|
ar & id;
|
||||||
ar& address;
|
ar & address;
|
||||||
ar& process;
|
ar & process;
|
||||||
ar& size;
|
ar & size;
|
||||||
ar& perms;
|
ar & perms;
|
||||||
}
|
}
|
||||||
friend class boost::serialization::access;
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
@ -271,7 +271,7 @@ private:
|
||||||
if (!Archive::is_loading::value && future.valid()) {
|
if (!Archive::is_loading::value && future.valid()) {
|
||||||
future.wait();
|
future.wait();
|
||||||
}
|
}
|
||||||
ar& functor;
|
ar & functor;
|
||||||
}
|
}
|
||||||
friend class boost::serialization::access;
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
|
|
@ -257,11 +257,11 @@ Result TranslateCommandBuffer(Kernel::KernelSystem& kernel, Memory::MemorySystem
|
||||||
|
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void MappedBufferContext::serialize(Archive& ar, const unsigned int) {
|
void MappedBufferContext::serialize(Archive& ar, const unsigned int) {
|
||||||
ar& permissions;
|
ar & permissions;
|
||||||
ar& size;
|
ar & size;
|
||||||
ar& source_address;
|
ar & source_address;
|
||||||
ar& target_address;
|
ar & target_address;
|
||||||
ar& buffer;
|
ar & buffer;
|
||||||
}
|
}
|
||||||
SERIALIZE_IMPL(MappedBufferContext)
|
SERIALIZE_IMPL(MappedBufferContext)
|
||||||
|
|
||||||
|
|
|
@ -165,27 +165,27 @@ void KernelSystem::ResetThreadIDs() {
|
||||||
|
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void KernelSystem::serialize(Archive& ar, const unsigned int) {
|
void KernelSystem::serialize(Archive& ar, const unsigned int) {
|
||||||
ar& memory_regions;
|
ar & memory_regions;
|
||||||
ar& named_ports;
|
ar & named_ports;
|
||||||
// current_cpu set externally
|
// current_cpu set externally
|
||||||
// NB: subsystem references and prepare_reschedule_callback are constant
|
// NB: subsystem references and prepare_reschedule_callback are constant
|
||||||
ar&* resource_limits.get();
|
ar&* resource_limits.get();
|
||||||
ar& next_object_id;
|
ar & next_object_id;
|
||||||
ar&* timer_manager.get();
|
ar&* timer_manager.get();
|
||||||
ar& next_process_id;
|
ar & next_process_id;
|
||||||
ar& process_list;
|
ar & process_list;
|
||||||
ar& current_process;
|
ar & current_process;
|
||||||
// NB: core count checked in 'core'
|
// NB: core count checked in 'core'
|
||||||
for (auto& thread_manager : thread_managers) {
|
for (auto& thread_manager : thread_managers) {
|
||||||
ar&* thread_manager.get();
|
ar&* thread_manager.get();
|
||||||
}
|
}
|
||||||
ar& config_mem_handler;
|
ar & config_mem_handler;
|
||||||
ar& shared_page_handler;
|
ar & shared_page_handler;
|
||||||
ar& stored_processes;
|
ar & stored_processes;
|
||||||
ar& next_thread_id;
|
ar & next_thread_id;
|
||||||
ar& memory_mode;
|
ar & memory_mode;
|
||||||
ar& n3ds_hw_caps;
|
ar & n3ds_hw_caps;
|
||||||
ar& main_thread_extended_sleep;
|
ar & main_thread_extended_sleep;
|
||||||
// Deliberately don't include debugger info to allow debugging through loads
|
// Deliberately don't include debugger info to allow debugging through loads
|
||||||
|
|
||||||
if (Archive::is_loading::value) {
|
if (Archive::is_loading::value) {
|
||||||
|
@ -201,9 +201,9 @@ SERIALIZE_IMPL(KernelSystem)
|
||||||
|
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void New3dsHwCapabilities::serialize(Archive& ar, const unsigned int) {
|
void New3dsHwCapabilities::serialize(Archive& ar, const unsigned int) {
|
||||||
ar& enable_l2_cache;
|
ar & enable_l2_cache;
|
||||||
ar& enable_804MHz_cpu;
|
ar & enable_804MHz_cpu;
|
||||||
ar& memory_mode;
|
ar & memory_mode;
|
||||||
}
|
}
|
||||||
SERIALIZE_IMPL(New3dsHwCapabilities)
|
SERIALIZE_IMPL(New3dsHwCapabilities)
|
||||||
|
|
||||||
|
|
|
@ -273,10 +273,10 @@ void MemoryRegionInfo::Unlock() {
|
||||||
|
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void MemoryRegionInfo::serialize(Archive& ar, const unsigned int) {
|
void MemoryRegionInfo::serialize(Archive& ar, const unsigned int) {
|
||||||
ar& base;
|
ar & base;
|
||||||
ar& size;
|
ar & size;
|
||||||
ar& used;
|
ar & used;
|
||||||
ar& free_blocks;
|
ar & free_blocks;
|
||||||
if (Archive::is_loading::value) {
|
if (Archive::is_loading::value) {
|
||||||
is_locked = true;
|
is_locked = true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -133,11 +133,11 @@ void Mutex::UpdatePriority() {
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void Mutex::serialize(Archive& ar, const unsigned int) {
|
void Mutex::serialize(Archive& ar, const unsigned int) {
|
||||||
ar& boost::serialization::base_object<WaitObject>(*this);
|
ar& boost::serialization::base_object<WaitObject>(*this);
|
||||||
ar& lock_count;
|
ar & lock_count;
|
||||||
ar& priority;
|
ar & priority;
|
||||||
ar& name;
|
ar & name;
|
||||||
ar& holding_thread;
|
ar & holding_thread;
|
||||||
ar& resource_limit;
|
ar & resource_limit;
|
||||||
}
|
}
|
||||||
SERIALIZE_IMPL(Mutex)
|
SERIALIZE_IMPL(Mutex)
|
||||||
|
|
||||||
|
|
|
@ -43,7 +43,7 @@ bool Object::IsWaitable() const {
|
||||||
|
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void Object::serialize(Archive& ar, const unsigned int) {
|
void Object::serialize(Archive& ar, const unsigned int) {
|
||||||
ar& object_id;
|
ar & object_id;
|
||||||
}
|
}
|
||||||
SERIALIZE_IMPL(Object)
|
SERIALIZE_IMPL(Object)
|
||||||
|
|
||||||
|
|
|
@ -35,36 +35,36 @@ namespace Kernel {
|
||||||
|
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void AddressMapping::serialize(Archive& ar, const unsigned int) {
|
void AddressMapping::serialize(Archive& ar, const unsigned int) {
|
||||||
ar& address;
|
ar & address;
|
||||||
ar& size;
|
ar & size;
|
||||||
ar& read_only;
|
ar & read_only;
|
||||||
ar& unk_flag;
|
ar & unk_flag;
|
||||||
}
|
}
|
||||||
SERIALIZE_IMPL(AddressMapping)
|
SERIALIZE_IMPL(AddressMapping)
|
||||||
|
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void Process::serialize(Archive& ar, const unsigned int) {
|
void Process::serialize(Archive& ar, const unsigned int) {
|
||||||
ar& boost::serialization::base_object<Object>(*this);
|
ar& boost::serialization::base_object<Object>(*this);
|
||||||
ar& handle_table;
|
ar & handle_table;
|
||||||
ar& codeset; // TODO: Replace with apploader reference
|
ar & codeset; // TODO: Replace with apploader reference
|
||||||
ar& resource_limit;
|
ar & resource_limit;
|
||||||
ar& svc_access_mask;
|
ar & svc_access_mask;
|
||||||
ar& handle_table_size;
|
ar & handle_table_size;
|
||||||
ar&(boost::container::vector<AddressMapping, boost::container::dtl::static_storage_allocator<
|
ar&(boost::container::vector<AddressMapping, boost::container::dtl::static_storage_allocator<
|
||||||
AddressMapping, 8, 0, true>>&)address_mappings;
|
AddressMapping, 8, 0, true>>&)address_mappings;
|
||||||
ar& flags.raw;
|
ar & flags.raw;
|
||||||
ar& no_thread_restrictions;
|
ar & no_thread_restrictions;
|
||||||
ar& kernel_version;
|
ar & kernel_version;
|
||||||
ar& ideal_processor;
|
ar & ideal_processor;
|
||||||
ar& status;
|
ar & status;
|
||||||
ar& process_id;
|
ar & process_id;
|
||||||
ar& creation_time_ticks;
|
ar & creation_time_ticks;
|
||||||
ar& vm_manager;
|
ar & vm_manager;
|
||||||
ar& memory_used;
|
ar & memory_used;
|
||||||
ar& memory_region;
|
ar & memory_region;
|
||||||
ar& holding_memory;
|
ar & holding_memory;
|
||||||
ar& holding_tls_memory;
|
ar & holding_tls_memory;
|
||||||
ar& tls_slots;
|
ar & tls_slots;
|
||||||
}
|
}
|
||||||
SERIALIZE_IMPL(Process)
|
SERIALIZE_IMPL(Process)
|
||||||
|
|
||||||
|
@ -83,19 +83,19 @@ CodeSet::~CodeSet() {}
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void CodeSet::serialize(Archive& ar, const unsigned int) {
|
void CodeSet::serialize(Archive& ar, const unsigned int) {
|
||||||
ar& boost::serialization::base_object<Object>(*this);
|
ar& boost::serialization::base_object<Object>(*this);
|
||||||
ar& memory;
|
ar & memory;
|
||||||
ar& segments;
|
ar & segments;
|
||||||
ar& entrypoint;
|
ar & entrypoint;
|
||||||
ar& name;
|
ar & name;
|
||||||
ar& program_id;
|
ar & program_id;
|
||||||
}
|
}
|
||||||
SERIALIZE_IMPL(CodeSet)
|
SERIALIZE_IMPL(CodeSet)
|
||||||
|
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void CodeSet::Segment::serialize(Archive& ar, const unsigned int) {
|
void CodeSet::Segment::serialize(Archive& ar, const unsigned int) {
|
||||||
ar& offset;
|
ar & offset;
|
||||||
ar& addr;
|
ar & addr;
|
||||||
ar& size;
|
ar & size;
|
||||||
}
|
}
|
||||||
SERIALIZE_IMPL(CodeSet::Segment)
|
SERIALIZE_IMPL(CodeSet::Segment)
|
||||||
|
|
||||||
|
|
|
@ -69,9 +69,9 @@ bool ResourceLimit::Release(ResourceLimitType type, s32 amount) {
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void ResourceLimit::serialize(Archive& ar, const unsigned int) {
|
void ResourceLimit::serialize(Archive& ar, const unsigned int) {
|
||||||
ar& boost::serialization::base_object<Object>(*this);
|
ar& boost::serialization::base_object<Object>(*this);
|
||||||
ar& m_name;
|
ar & m_name;
|
||||||
ar& m_limit_values;
|
ar & m_limit_values;
|
||||||
ar& m_current_values;
|
ar & m_current_values;
|
||||||
}
|
}
|
||||||
SERIALIZE_IMPL(ResourceLimit)
|
SERIALIZE_IMPL(ResourceLimit)
|
||||||
|
|
||||||
|
@ -154,7 +154,7 @@ std::shared_ptr<ResourceLimit> ResourceLimitList::GetForCategory(ResourceLimitCa
|
||||||
|
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void ResourceLimitList::serialize(Archive& ar, const unsigned int) {
|
void ResourceLimitList::serialize(Archive& ar, const unsigned int) {
|
||||||
ar& resource_limits;
|
ar & resource_limits;
|
||||||
}
|
}
|
||||||
SERIALIZE_IMPL(ResourceLimitList)
|
SERIALIZE_IMPL(ResourceLimitList)
|
||||||
|
|
||||||
|
|
|
@ -63,10 +63,10 @@ Result Semaphore::Release(s32* out_count, s32 release_count) {
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void Semaphore::serialize(Archive& ar, const unsigned int) {
|
void Semaphore::serialize(Archive& ar, const unsigned int) {
|
||||||
ar& boost::serialization::base_object<WaitObject>(*this);
|
ar& boost::serialization::base_object<WaitObject>(*this);
|
||||||
ar& max_count;
|
ar & max_count;
|
||||||
ar& available_count;
|
ar & available_count;
|
||||||
ar& name;
|
ar & name;
|
||||||
ar& resource_limit;
|
ar & resource_limit;
|
||||||
}
|
}
|
||||||
SERIALIZE_IMPL(Semaphore)
|
SERIALIZE_IMPL(Semaphore)
|
||||||
|
|
||||||
|
|
|
@ -57,9 +57,9 @@ KernelSystem::PortPair KernelSystem::CreatePortPair(u32 max_sessions, std::strin
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void ServerPort::serialize(Archive& ar, const unsigned int) {
|
void ServerPort::serialize(Archive& ar, const unsigned int) {
|
||||||
ar& boost::serialization::base_object<WaitObject>(*this);
|
ar& boost::serialization::base_object<WaitObject>(*this);
|
||||||
ar& name;
|
ar & name;
|
||||||
ar& pending_sessions;
|
ar & pending_sessions;
|
||||||
ar& hle_handler;
|
ar & hle_handler;
|
||||||
}
|
}
|
||||||
SERIALIZE_IMPL(ServerPort)
|
SERIALIZE_IMPL(ServerPort)
|
||||||
|
|
||||||
|
|
|
@ -21,12 +21,12 @@ namespace Kernel {
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void ServerSession::serialize(Archive& ar, const unsigned int) {
|
void ServerSession::serialize(Archive& ar, const unsigned int) {
|
||||||
ar& boost::serialization::base_object<WaitObject>(*this);
|
ar& boost::serialization::base_object<WaitObject>(*this);
|
||||||
ar& name;
|
ar & name;
|
||||||
ar& parent;
|
ar & parent;
|
||||||
ar& hle_handler;
|
ar & hle_handler;
|
||||||
ar& pending_requesting_threads;
|
ar & pending_requesting_threads;
|
||||||
ar& currently_handling;
|
ar & currently_handling;
|
||||||
ar& mapped_buffer_context;
|
ar & mapped_buffer_context;
|
||||||
}
|
}
|
||||||
SERIALIZE_IMPL(ServerSession)
|
SERIALIZE_IMPL(ServerSession)
|
||||||
|
|
||||||
|
|
|
@ -15,9 +15,9 @@ namespace Kernel {
|
||||||
|
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void Session::serialize(Archive& ar, const unsigned int file_version) {
|
void Session::serialize(Archive& ar, const unsigned int file_version) {
|
||||||
ar& client;
|
ar & client;
|
||||||
ar& server;
|
ar & server;
|
||||||
ar& port;
|
ar & port;
|
||||||
}
|
}
|
||||||
SERIALIZE_IMPL(Session)
|
SERIALIZE_IMPL(Session)
|
||||||
|
|
||||||
|
|
|
@ -224,16 +224,16 @@ const u8* SharedMemory::GetPointer(u32 offset) const {
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void SharedMemory::serialize(Archive& ar, const unsigned int) {
|
void SharedMemory::serialize(Archive& ar, const unsigned int) {
|
||||||
ar& boost::serialization::base_object<Object>(*this);
|
ar& boost::serialization::base_object<Object>(*this);
|
||||||
ar& linear_heap_phys_offset;
|
ar & linear_heap_phys_offset;
|
||||||
ar& backing_blocks;
|
ar & backing_blocks;
|
||||||
ar& size;
|
ar & size;
|
||||||
ar& memory_region;
|
ar & memory_region;
|
||||||
ar& permissions;
|
ar & permissions;
|
||||||
ar& other_permissions;
|
ar & other_permissions;
|
||||||
ar& owner_process;
|
ar & owner_process;
|
||||||
ar& base_address;
|
ar & base_address;
|
||||||
ar& name;
|
ar & name;
|
||||||
ar& holding_memory;
|
ar & holding_memory;
|
||||||
}
|
}
|
||||||
SERIALIZE_IMPL(SharedMemory)
|
SERIALIZE_IMPL(SharedMemory)
|
||||||
|
|
||||||
|
|
|
@ -687,7 +687,7 @@ private:
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int) {
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
ar& boost::serialization::base_object<Kernel::WakeupCallback>(*this);
|
ar& boost::serialization::base_object<Kernel::WakeupCallback>(*this);
|
||||||
ar& do_output;
|
ar & do_output;
|
||||||
}
|
}
|
||||||
friend class boost::serialization::access;
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
|
|
@ -33,33 +33,33 @@ namespace Kernel {
|
||||||
|
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void ThreadManager::serialize(Archive& ar, const unsigned int) {
|
void ThreadManager::serialize(Archive& ar, const unsigned int) {
|
||||||
ar& current_thread;
|
ar & current_thread;
|
||||||
ar& ready_queue;
|
ar & ready_queue;
|
||||||
ar& wakeup_callback_table;
|
ar & wakeup_callback_table;
|
||||||
ar& thread_list;
|
ar & thread_list;
|
||||||
}
|
}
|
||||||
SERIALIZE_IMPL(ThreadManager)
|
SERIALIZE_IMPL(ThreadManager)
|
||||||
|
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void Thread::serialize(Archive& ar, const unsigned int file_version) {
|
void Thread::serialize(Archive& ar, const unsigned int file_version) {
|
||||||
ar& boost::serialization::base_object<WaitObject>(*this);
|
ar& boost::serialization::base_object<WaitObject>(*this);
|
||||||
ar& context;
|
ar & context;
|
||||||
ar& thread_id;
|
ar & thread_id;
|
||||||
ar& status;
|
ar & status;
|
||||||
ar& entry_point;
|
ar & entry_point;
|
||||||
ar& stack_top;
|
ar & stack_top;
|
||||||
ar& nominal_priority;
|
ar & nominal_priority;
|
||||||
ar& current_priority;
|
ar & current_priority;
|
||||||
ar& last_running_ticks;
|
ar & last_running_ticks;
|
||||||
ar& processor_id;
|
ar & processor_id;
|
||||||
ar& tls_address;
|
ar & tls_address;
|
||||||
ar& held_mutexes;
|
ar & held_mutexes;
|
||||||
ar& pending_mutexes;
|
ar & pending_mutexes;
|
||||||
ar& owner_process;
|
ar & owner_process;
|
||||||
ar& wait_objects;
|
ar & wait_objects;
|
||||||
ar& wait_address;
|
ar & wait_address;
|
||||||
ar& name;
|
ar & name;
|
||||||
ar& wakeup_callback;
|
ar & wakeup_callback;
|
||||||
}
|
}
|
||||||
SERIALIZE_IMPL(Thread)
|
SERIALIZE_IMPL(Thread)
|
||||||
|
|
||||||
|
|
|
@ -102,13 +102,13 @@ void Timer::Signal(s64 cycles_late) {
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void Timer::serialize(Archive& ar, const unsigned int) {
|
void Timer::serialize(Archive& ar, const unsigned int) {
|
||||||
ar& boost::serialization::base_object<WaitObject>(*this);
|
ar& boost::serialization::base_object<WaitObject>(*this);
|
||||||
ar& reset_type;
|
ar & reset_type;
|
||||||
ar& initial_delay;
|
ar & initial_delay;
|
||||||
ar& interval_delay;
|
ar & interval_delay;
|
||||||
ar& signaled;
|
ar & signaled;
|
||||||
ar& name;
|
ar & name;
|
||||||
ar& callback_id;
|
ar & callback_id;
|
||||||
ar& resource_limit;
|
ar & resource_limit;
|
||||||
}
|
}
|
||||||
SERIALIZE_IMPL(Timer)
|
SERIALIZE_IMPL(Timer)
|
||||||
|
|
||||||
|
@ -133,8 +133,8 @@ TimerManager::TimerManager(Core::Timing& timing) : timing(timing) {
|
||||||
|
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void TimerManager::serialize(Archive& ar, const unsigned int) {
|
void TimerManager::serialize(Archive& ar, const unsigned int) {
|
||||||
ar& next_timer_callback_id;
|
ar & next_timer_callback_id;
|
||||||
ar& timer_callback_table;
|
ar & timer_callback_table;
|
||||||
}
|
}
|
||||||
SERIALIZE_IMPL(TimerManager)
|
SERIALIZE_IMPL(TimerManager)
|
||||||
|
|
||||||
|
|
|
@ -43,12 +43,12 @@ bool VirtualMemoryArea::CanBeMergedWith(const VirtualMemoryArea& next) const {
|
||||||
|
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void VirtualMemoryArea::serialize(Archive& ar, const unsigned int) {
|
void VirtualMemoryArea::serialize(Archive& ar, const unsigned int) {
|
||||||
ar& base;
|
ar & base;
|
||||||
ar& size;
|
ar & size;
|
||||||
ar& type;
|
ar & type;
|
||||||
ar& permissions;
|
ar & permissions;
|
||||||
ar& meminfo_state;
|
ar & meminfo_state;
|
||||||
ar& backing_memory;
|
ar & backing_memory;
|
||||||
}
|
}
|
||||||
SERIALIZE_IMPL(VirtualMemoryArea)
|
SERIALIZE_IMPL(VirtualMemoryArea)
|
||||||
|
|
||||||
|
@ -399,8 +399,8 @@ ResultVal<std::vector<std::pair<MemoryRef, u32>>> VMManager::GetBackingBlocksFor
|
||||||
|
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void VMManager::serialize(Archive& ar, const unsigned int) {
|
void VMManager::serialize(Archive& ar, const unsigned int) {
|
||||||
ar& vma_map;
|
ar & vma_map;
|
||||||
ar& page_table;
|
ar & page_table;
|
||||||
if (Archive::is_loading::value) {
|
if (Archive::is_loading::value) {
|
||||||
is_locked = true;
|
is_locked = true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,7 +25,7 @@ namespace Kernel {
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void WaitObject::serialize(Archive& ar, const unsigned int) {
|
void WaitObject::serialize(Archive& ar, const unsigned int) {
|
||||||
ar& boost::serialization::base_object<Object>(*this);
|
ar& boost::serialization::base_object<Object>(*this);
|
||||||
ar& waiting_threads;
|
ar & waiting_threads;
|
||||||
// NB: hle_notifier *not* serialized since it's a callback!
|
// NB: hle_notifier *not* serialized since it's a callback!
|
||||||
// Fortunately it's only used in one place (DSP) so we can reconstruct it there
|
// Fortunately it's only used in one place (DSP) so we can reconstruct it there
|
||||||
}
|
}
|
||||||
|
|
|
@ -229,7 +229,7 @@ union Result {
|
||||||
private:
|
private:
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int) {
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
ar& raw;
|
ar & raw;
|
||||||
}
|
}
|
||||||
friend class boost::serialization::access;
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
|
|
@ -366,17 +366,17 @@ Module::Module(Core::System& system_) : system(system_) {}
|
||||||
|
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void Module::serialize(Archive& ar, const unsigned int) {
|
void Module::serialize(Archive& ar, const unsigned int) {
|
||||||
ar& ac_connected;
|
ar & ac_connected;
|
||||||
ar& close_event;
|
ar & close_event;
|
||||||
ar& connect_event;
|
ar & connect_event;
|
||||||
ar& disconnect_event;
|
ar & disconnect_event;
|
||||||
u32 connect_result_32 = connect_result.raw;
|
u32 connect_result_32 = connect_result.raw;
|
||||||
ar& connect_result_32;
|
ar & connect_result_32;
|
||||||
connect_result.raw = connect_result_32;
|
connect_result.raw = connect_result_32;
|
||||||
u32 close_result_32 = close_result.raw;
|
u32 close_result_32 = close_result.raw;
|
||||||
ar& close_result_32;
|
ar & close_result_32;
|
||||||
close_result.raw = close_result_32;
|
close_result.raw = close_result_32;
|
||||||
ar& connected_pids;
|
ar & connected_pids;
|
||||||
// default_config is never written to
|
// default_config is never written to
|
||||||
}
|
}
|
||||||
SERIALIZE_IMPL(Module)
|
SERIALIZE_IMPL(Module)
|
||||||
|
|
|
@ -1796,9 +1796,9 @@ void Module::Interface::EndImportTicket(Kernel::HLERequestContext& ctx) {
|
||||||
|
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void Module::serialize(Archive& ar, const unsigned int) {
|
void Module::serialize(Archive& ar, const unsigned int) {
|
||||||
ar& cia_installing;
|
ar & cia_installing;
|
||||||
ar& am_title_list;
|
ar & am_title_list;
|
||||||
ar& system_updater_mutex;
|
ar & system_updater_mutex;
|
||||||
}
|
}
|
||||||
SERIALIZE_IMPL(Module)
|
SERIALIZE_IMPL(Module)
|
||||||
|
|
||||||
|
|
|
@ -129,11 +129,11 @@ struct MessageParameter {
|
||||||
private:
|
private:
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int) {
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
ar& sender_id;
|
ar & sender_id;
|
||||||
ar& destination_id;
|
ar & destination_id;
|
||||||
ar& signal;
|
ar & signal;
|
||||||
ar& object;
|
ar & object;
|
||||||
ar& buffer;
|
ar & buffer;
|
||||||
}
|
}
|
||||||
friend class boost::serialization::access;
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
@ -173,9 +173,9 @@ struct DeliverArg {
|
||||||
private:
|
private:
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int) {
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
ar& param;
|
ar & param;
|
||||||
ar& hmac;
|
ar & hmac;
|
||||||
ar& source_program_id;
|
ar & source_program_id;
|
||||||
}
|
}
|
||||||
friend class boost::serialization::access;
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
@ -191,11 +191,11 @@ struct ApplicationJumpParameters {
|
||||||
private:
|
private:
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int file_version) {
|
void serialize(Archive& ar, const unsigned int file_version) {
|
||||||
ar& next_title_id;
|
ar & next_title_id;
|
||||||
ar& next_media_type;
|
ar & next_media_type;
|
||||||
ar& flags;
|
ar & flags;
|
||||||
ar& current_title_id;
|
ar & current_title_id;
|
||||||
ar& current_media_type;
|
ar & current_media_type;
|
||||||
}
|
}
|
||||||
friend class boost::serialization::access;
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
@ -207,8 +207,8 @@ struct ApplicationStartParameters {
|
||||||
private:
|
private:
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int) {
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
ar& next_title_id;
|
ar & next_title_id;
|
||||||
ar& next_media_type;
|
ar & next_media_type;
|
||||||
}
|
}
|
||||||
friend class boost::serialization::access;
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
@ -237,14 +237,14 @@ struct CaptureBufferInfo {
|
||||||
private:
|
private:
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int) {
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
ar& size;
|
ar & size;
|
||||||
ar& is_3d;
|
ar & is_3d;
|
||||||
ar& top_screen_left_offset;
|
ar & top_screen_left_offset;
|
||||||
ar& top_screen_right_offset;
|
ar & top_screen_right_offset;
|
||||||
ar& top_screen_format;
|
ar & top_screen_format;
|
||||||
ar& bottom_screen_left_offset;
|
ar & bottom_screen_left_offset;
|
||||||
ar& bottom_screen_right_offset;
|
ar & bottom_screen_right_offset;
|
||||||
ar& bottom_screen_format;
|
ar & bottom_screen_format;
|
||||||
}
|
}
|
||||||
friend class boost::serialization::access;
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
@ -454,15 +454,15 @@ private:
|
||||||
private:
|
private:
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int) {
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
ar& applet_id;
|
ar & applet_id;
|
||||||
ar& slot;
|
ar & slot;
|
||||||
ar& title_id;
|
ar & title_id;
|
||||||
ar& registered;
|
ar & registered;
|
||||||
ar& loaded;
|
ar & loaded;
|
||||||
ar& attributes.raw;
|
ar & attributes.raw;
|
||||||
ar& notification;
|
ar & notification;
|
||||||
ar& notification_event;
|
ar & notification_event;
|
||||||
ar& parameter_event;
|
ar & parameter_event;
|
||||||
}
|
}
|
||||||
friend class boost::serialization::access;
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
@ -527,27 +527,27 @@ private:
|
||||||
|
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int file_version) {
|
void serialize(Archive& ar, const unsigned int file_version) {
|
||||||
ar& next_parameter;
|
ar & next_parameter;
|
||||||
ar& app_jump_parameters;
|
ar & app_jump_parameters;
|
||||||
ar& delayed_parameter;
|
ar & delayed_parameter;
|
||||||
ar& app_start_parameters;
|
ar & app_start_parameters;
|
||||||
ar& deliver_arg;
|
ar & deliver_arg;
|
||||||
ar& capture_info;
|
ar & capture_info;
|
||||||
ar& capture_buffer_info;
|
ar & capture_buffer_info;
|
||||||
ar& active_slot;
|
ar & active_slot;
|
||||||
ar& last_library_launcher_slot;
|
ar & last_library_launcher_slot;
|
||||||
ar& last_prepared_library_applet;
|
ar & last_prepared_library_applet;
|
||||||
ar& last_system_launcher_slot;
|
ar & last_system_launcher_slot;
|
||||||
ar& last_jump_to_home_slot;
|
ar & last_jump_to_home_slot;
|
||||||
ar& ordered_to_close_sys_applet;
|
ar & ordered_to_close_sys_applet;
|
||||||
ar& ordered_to_close_application;
|
ar & ordered_to_close_application;
|
||||||
ar& application_cancelled;
|
ar & application_cancelled;
|
||||||
ar& application_close_target;
|
ar & application_close_target;
|
||||||
ar& new_3ds_mode_blocked;
|
ar & new_3ds_mode_blocked;
|
||||||
ar& lock;
|
ar & lock;
|
||||||
ar& capture_info;
|
ar & capture_info;
|
||||||
ar& applet_slots;
|
ar & applet_slots;
|
||||||
ar& library_applet_closing_command;
|
ar & library_applet_closing_command;
|
||||||
|
|
||||||
if (Archive::is_loading::value) {
|
if (Archive::is_loading::value) {
|
||||||
LoadInputDevices();
|
LoadInputDevices();
|
||||||
|
|
|
@ -41,13 +41,13 @@ namespace Service::APT {
|
||||||
|
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void Module::serialize(Archive& ar, const unsigned int file_version) {
|
void Module::serialize(Archive& ar, const unsigned int file_version) {
|
||||||
ar& shared_font_mem;
|
ar & shared_font_mem;
|
||||||
ar& shared_font_loaded;
|
ar & shared_font_loaded;
|
||||||
ar& shared_font_relocated;
|
ar & shared_font_relocated;
|
||||||
ar& cpu_percent;
|
ar & cpu_percent;
|
||||||
ar& screen_capture_post_permission;
|
ar & screen_capture_post_permission;
|
||||||
ar& applet_manager;
|
ar & applet_manager;
|
||||||
ar& wireless_reboot_info;
|
ar & wireless_reboot_info;
|
||||||
}
|
}
|
||||||
|
|
||||||
SERIALIZE_IMPL(Module)
|
SERIALIZE_IMPL(Module)
|
||||||
|
|
|
@ -1055,7 +1055,7 @@ public:
|
||||||
private:
|
private:
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int) {
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
ar& application_reset_prepared;
|
ar & application_reset_prepared;
|
||||||
}
|
}
|
||||||
friend class boost::serialization::access;
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
|
|
@ -19,18 +19,18 @@ namespace Service::BOSS {
|
||||||
|
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void Module::serialize(Archive& ar, const unsigned int) {
|
void Module::serialize(Archive& ar, const unsigned int) {
|
||||||
ar& task_finish_event;
|
ar & task_finish_event;
|
||||||
ar& new_arrival_flag;
|
ar & new_arrival_flag;
|
||||||
ar& ns_data_new_flag;
|
ar & ns_data_new_flag;
|
||||||
ar& ns_data_new_flag_privileged;
|
ar & ns_data_new_flag_privileged;
|
||||||
ar& output_flag;
|
ar & output_flag;
|
||||||
}
|
}
|
||||||
SERIALIZE_IMPL(Module)
|
SERIALIZE_IMPL(Module)
|
||||||
|
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void Module::SessionData::serialize(Archive& ar, const unsigned int) {
|
void Module::SessionData::serialize(Archive& ar, const unsigned int) {
|
||||||
ar& boost::serialization::base_object<Kernel::SessionRequestHandler::SessionDataBase>(*this);
|
ar& boost::serialization::base_object<Kernel::SessionRequestHandler::SessionDataBase>(*this);
|
||||||
ar& online_service;
|
ar & online_service;
|
||||||
}
|
}
|
||||||
SERIALIZE_IMPL(Module::SessionData)
|
SERIALIZE_IMPL(Module::SessionData)
|
||||||
|
|
||||||
|
|
|
@ -32,17 +32,17 @@ OnlineService::OnlineService(u64 program_id_, u64 extdata_id_)
|
||||||
|
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void OnlineService::serialize(Archive& ar, const unsigned int) {
|
void OnlineService::serialize(Archive& ar, const unsigned int) {
|
||||||
ar& current_props;
|
ar & current_props;
|
||||||
ar& task_id_list;
|
ar & task_id_list;
|
||||||
ar& program_id;
|
ar & program_id;
|
||||||
ar& extdata_id;
|
ar & extdata_id;
|
||||||
}
|
}
|
||||||
SERIALIZE_IMPL(OnlineService)
|
SERIALIZE_IMPL(OnlineService)
|
||||||
|
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void BossTaskProperties::serialize(Archive& ar, const unsigned int) {
|
void BossTaskProperties::serialize(Archive& ar, const unsigned int) {
|
||||||
ar& task_result;
|
ar & task_result;
|
||||||
ar& properties;
|
ar & properties;
|
||||||
}
|
}
|
||||||
SERIALIZE_IMPL(BossTaskProperties)
|
SERIALIZE_IMPL(BossTaskProperties)
|
||||||
|
|
||||||
|
|
|
@ -26,10 +26,10 @@ namespace Service::CAM {
|
||||||
|
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void Module::serialize(Archive& ar, const unsigned int file_version) {
|
void Module::serialize(Archive& ar, const unsigned int file_version) {
|
||||||
ar& cameras;
|
ar & cameras;
|
||||||
ar& ports;
|
ar & ports;
|
||||||
ar& is_camera_reload_pending;
|
ar & is_camera_reload_pending;
|
||||||
ar& initialized;
|
ar & initialized;
|
||||||
if (Archive::is_loading::value && initialized) {
|
if (Archive::is_loading::value && initialized) {
|
||||||
for (int i = 0; i < NumCameras; i++) {
|
for (int i = 0; i < NumCameras; i++) {
|
||||||
LoadCameraImplementation(cameras[i], i);
|
LoadCameraImplementation(cameras[i], i);
|
||||||
|
|
|
@ -77,12 +77,12 @@ struct Resolution {
|
||||||
private:
|
private:
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int) {
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
ar& width;
|
ar & width;
|
||||||
ar& height;
|
ar & height;
|
||||||
ar& crop_x0;
|
ar & crop_x0;
|
||||||
ar& crop_y0;
|
ar & crop_y0;
|
||||||
ar& crop_x1;
|
ar & crop_x1;
|
||||||
ar& crop_y1;
|
ar & crop_y1;
|
||||||
}
|
}
|
||||||
friend class boost::serialization::access;
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
@ -664,10 +664,10 @@ private:
|
||||||
private:
|
private:
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int) {
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
ar& flip;
|
ar & flip;
|
||||||
ar& effect;
|
ar & effect;
|
||||||
ar& format;
|
ar & format;
|
||||||
ar& resolution;
|
ar & resolution;
|
||||||
}
|
}
|
||||||
friend class boost::serialization::access;
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
@ -681,9 +681,9 @@ private:
|
||||||
private:
|
private:
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int file_version) {
|
void serialize(Archive& ar, const unsigned int file_version) {
|
||||||
ar& contexts;
|
ar & contexts;
|
||||||
ar& current_context;
|
ar & current_context;
|
||||||
ar& frame_rate;
|
ar & frame_rate;
|
||||||
}
|
}
|
||||||
friend class boost::serialization::access;
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
@ -726,25 +726,25 @@ private:
|
||||||
private:
|
private:
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int) {
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
ar& camera_id;
|
ar & camera_id;
|
||||||
ar& is_active;
|
ar & is_active;
|
||||||
ar& is_pending_receiving;
|
ar & is_pending_receiving;
|
||||||
ar& is_busy;
|
ar & is_busy;
|
||||||
ar& is_receiving;
|
ar & is_receiving;
|
||||||
ar& is_trimming;
|
ar & is_trimming;
|
||||||
ar& x0;
|
ar & x0;
|
||||||
ar& y0;
|
ar & y0;
|
||||||
ar& x1;
|
ar & x1;
|
||||||
ar& y1;
|
ar & y1;
|
||||||
ar& transfer_bytes;
|
ar & transfer_bytes;
|
||||||
ar& completion_event;
|
ar & completion_event;
|
||||||
ar& buffer_error_interrupt_event;
|
ar & buffer_error_interrupt_event;
|
||||||
ar& vsync_interrupt_event;
|
ar & vsync_interrupt_event;
|
||||||
ar& vsync_timings;
|
ar & vsync_timings;
|
||||||
// Ignore capture_result. In-progress captures might be affected but this is OK.
|
// Ignore capture_result. In-progress captures might be affected but this is OK.
|
||||||
ar& dest_process;
|
ar & dest_process;
|
||||||
ar& dest;
|
ar & dest;
|
||||||
ar& dest_size;
|
ar & dest_size;
|
||||||
}
|
}
|
||||||
friend class boost::serialization::access;
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
|
|
@ -22,12 +22,12 @@ namespace Service::Y2R {
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void Y2R_U::serialize(Archive& ar, const unsigned int) {
|
void Y2R_U::serialize(Archive& ar, const unsigned int) {
|
||||||
ar& boost::serialization::base_object<Kernel::SessionRequestHandler>(*this);
|
ar& boost::serialization::base_object<Kernel::SessionRequestHandler>(*this);
|
||||||
ar& completion_event;
|
ar & completion_event;
|
||||||
ar& conversion;
|
ar & conversion;
|
||||||
ar& dithering_weight_params;
|
ar & dithering_weight_params;
|
||||||
ar& temporal_dithering_enabled;
|
ar & temporal_dithering_enabled;
|
||||||
ar& transfer_end_interrupt_enabled;
|
ar & transfer_end_interrupt_enabled;
|
||||||
ar& spacial_dithering_enabled;
|
ar & spacial_dithering_enabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
constexpr std::array<CoefficientSet, 4> standard_coefficients{{
|
constexpr std::array<CoefficientSet, 4> standard_coefficients{{
|
||||||
|
|
|
@ -96,10 +96,10 @@ struct ConversionBuffer {
|
||||||
private:
|
private:
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int) {
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
ar& address;
|
ar & address;
|
||||||
ar& image_size;
|
ar & image_size;
|
||||||
ar& transfer_unit;
|
ar & transfer_unit;
|
||||||
ar& gap;
|
ar & gap;
|
||||||
}
|
}
|
||||||
friend class boost::serialization::access;
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
@ -127,20 +127,20 @@ struct ConversionConfiguration {
|
||||||
private:
|
private:
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int) {
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
ar& input_format;
|
ar & input_format;
|
||||||
ar& output_format;
|
ar & output_format;
|
||||||
ar& rotation;
|
ar & rotation;
|
||||||
ar& block_alignment;
|
ar & block_alignment;
|
||||||
ar& input_line_width;
|
ar & input_line_width;
|
||||||
ar& input_lines;
|
ar & input_lines;
|
||||||
ar& coefficients;
|
ar & coefficients;
|
||||||
ar& padding;
|
ar & padding;
|
||||||
ar& alpha;
|
ar & alpha;
|
||||||
ar& src_Y;
|
ar & src_Y;
|
||||||
ar& src_U;
|
ar & src_U;
|
||||||
ar& src_V;
|
ar & src_V;
|
||||||
ar& src_YUYV;
|
ar & src_YUYV;
|
||||||
ar& dst;
|
ar & dst;
|
||||||
}
|
}
|
||||||
friend class boost::serialization::access;
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
@ -166,22 +166,22 @@ struct DitheringWeightParams {
|
||||||
private:
|
private:
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int) {
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
ar& w0_xEven_yEven;
|
ar & w0_xEven_yEven;
|
||||||
ar& w0_xOdd_yEven;
|
ar & w0_xOdd_yEven;
|
||||||
ar& w0_xEven_yOdd;
|
ar & w0_xEven_yOdd;
|
||||||
ar& w0_xOdd_yOdd;
|
ar & w0_xOdd_yOdd;
|
||||||
ar& w1_xEven_yEven;
|
ar & w1_xEven_yEven;
|
||||||
ar& w1_xOdd_yEven;
|
ar & w1_xOdd_yEven;
|
||||||
ar& w1_xEven_yOdd;
|
ar & w1_xEven_yOdd;
|
||||||
ar& w1_xOdd_yOdd;
|
ar & w1_xOdd_yOdd;
|
||||||
ar& w2_xEven_yEven;
|
ar & w2_xEven_yEven;
|
||||||
ar& w2_xOdd_yEven;
|
ar & w2_xOdd_yEven;
|
||||||
ar& w2_xEven_yOdd;
|
ar & w2_xEven_yOdd;
|
||||||
ar& w2_xOdd_yOdd;
|
ar & w2_xOdd_yOdd;
|
||||||
ar& w3_xEven_yEven;
|
ar & w3_xEven_yEven;
|
||||||
ar& w3_xOdd_yEven;
|
ar & w3_xOdd_yEven;
|
||||||
ar& w3_xEven_yOdd;
|
ar & w3_xEven_yOdd;
|
||||||
ar& w3_xOdd_yOdd;
|
ar & w3_xOdd_yOdd;
|
||||||
}
|
}
|
||||||
friend class boost::serialization::access;
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
|
|
@ -35,10 +35,10 @@ namespace Service::CECD {
|
||||||
|
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void Module::serialize(Archive& ar, const unsigned int) {
|
void Module::serialize(Archive& ar, const unsigned int) {
|
||||||
ar& cecd_system_save_data_archive;
|
ar & cecd_system_save_data_archive;
|
||||||
ar& cecinfo_event;
|
ar & cecinfo_event;
|
||||||
ar& cecinfosys_event;
|
ar & cecinfosys_event;
|
||||||
ar& change_state_event;
|
ar & change_state_event;
|
||||||
}
|
}
|
||||||
SERIALIZE_IMPL(Module)
|
SERIALIZE_IMPL(Module)
|
||||||
|
|
||||||
|
|
|
@ -255,11 +255,11 @@ public:
|
||||||
void serialize(Archive& ar, const unsigned int) {
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
ar& boost::serialization::base_object<Kernel::SessionRequestHandler::SessionDataBase>(
|
ar& boost::serialization::base_object<Kernel::SessionRequestHandler::SessionDataBase>(
|
||||||
*this);
|
*this);
|
||||||
ar& ncch_program_id;
|
ar & ncch_program_id;
|
||||||
ar& data_path_type;
|
ar & data_path_type;
|
||||||
ar& open_mode.raw;
|
ar & open_mode.raw;
|
||||||
ar& path;
|
ar & path;
|
||||||
ar& file;
|
ar & file;
|
||||||
}
|
}
|
||||||
friend class boost::serialization::access;
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
|
|
@ -37,10 +37,10 @@ namespace Service::CFG {
|
||||||
|
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void Module::serialize(Archive& ar, const unsigned int) {
|
void Module::serialize(Archive& ar, const unsigned int) {
|
||||||
ar& cfg_config_file_buffer;
|
ar & cfg_config_file_buffer;
|
||||||
ar& cfg_system_save_data_archive;
|
ar & cfg_system_save_data_archive;
|
||||||
ar& preferred_region_code;
|
ar & preferred_region_code;
|
||||||
ar& preferred_region_chosen;
|
ar & preferred_region_chosen;
|
||||||
}
|
}
|
||||||
SERIALIZE_IMPL(Module)
|
SERIALIZE_IMPL(Module)
|
||||||
|
|
||||||
|
|
|
@ -39,8 +39,8 @@ struct AdpcmState {
|
||||||
private:
|
private:
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int) {
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
ar& predictor;
|
ar & predictor;
|
||||||
ar& step_index;
|
ar & step_index;
|
||||||
}
|
}
|
||||||
friend class boost::serialization::access;
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
@ -66,22 +66,22 @@ struct Channel {
|
||||||
private:
|
private:
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int) {
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
ar& block1_address;
|
ar & block1_address;
|
||||||
ar& block2_address;
|
ar & block2_address;
|
||||||
ar& block1_size;
|
ar & block1_size;
|
||||||
ar& block2_size;
|
ar & block2_size;
|
||||||
ar& block1_adpcm_state;
|
ar & block1_adpcm_state;
|
||||||
ar& block2_adpcm_state;
|
ar & block2_adpcm_state;
|
||||||
ar& block2_adpcm_reload;
|
ar & block2_adpcm_reload;
|
||||||
ar& left_channel_volume;
|
ar & left_channel_volume;
|
||||||
ar& right_channel_volume;
|
ar & right_channel_volume;
|
||||||
ar& left_capture_volume;
|
ar & left_capture_volume;
|
||||||
ar& right_capture_volume;
|
ar & right_capture_volume;
|
||||||
ar& sample_rate;
|
ar & sample_rate;
|
||||||
ar& linear_interpolation;
|
ar & linear_interpolation;
|
||||||
ar& loop_mode;
|
ar & loop_mode;
|
||||||
ar& encoding;
|
ar & encoding;
|
||||||
ar& psg_duty;
|
ar & psg_duty;
|
||||||
}
|
}
|
||||||
friend class boost::serialization::access;
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
@ -258,15 +258,15 @@ private:
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int) {
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
ar& boost::serialization::base_object<Kernel::SessionRequestHandler>(*this);
|
ar& boost::serialization::base_object<Kernel::SessionRequestHandler>(*this);
|
||||||
ar& mutex;
|
ar & mutex;
|
||||||
ar& shared_memory;
|
ar & shared_memory;
|
||||||
ar& capture_units;
|
ar & capture_units;
|
||||||
ar& channels;
|
ar & channels;
|
||||||
ar& master_state_offset;
|
ar & master_state_offset;
|
||||||
ar& channel_state_offset;
|
ar & channel_state_offset;
|
||||||
ar& capture_state_offset;
|
ar & capture_state_offset;
|
||||||
ar& type1_command_offset;
|
ar & type1_command_offset;
|
||||||
ar& acquired_channel_mask;
|
ar & acquired_channel_mask;
|
||||||
}
|
}
|
||||||
friend class boost::serialization::access;
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
|
|
@ -270,11 +270,11 @@ private:
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int) {
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
ar& boost::serialization::base_object<Kernel::SessionRequestHandler>(*this);
|
ar& boost::serialization::base_object<Kernel::SessionRequestHandler>(*this);
|
||||||
ar& semaphore_event;
|
ar & semaphore_event;
|
||||||
ar& preset_semaphore;
|
ar & preset_semaphore;
|
||||||
ar& interrupt_zero;
|
ar & interrupt_zero;
|
||||||
ar& interrupt_one;
|
ar & interrupt_one;
|
||||||
ar& pipes;
|
ar & pipes;
|
||||||
}
|
}
|
||||||
friend class boost::serialization::access;
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
|
|
@ -26,9 +26,9 @@ struct FriendKey {
|
||||||
private:
|
private:
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int) {
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
ar& friend_id;
|
ar & friend_id;
|
||||||
ar& unknown;
|
ar & unknown;
|
||||||
ar& friend_code;
|
ar & friend_code;
|
||||||
}
|
}
|
||||||
friend class boost::serialization::access;
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
@ -39,7 +39,7 @@ struct MyPresence {
|
||||||
private:
|
private:
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int) {
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
ar& unknown;
|
ar & unknown;
|
||||||
}
|
}
|
||||||
friend class boost::serialization::access;
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
@ -271,9 +271,9 @@ private:
|
||||||
|
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int) {
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
ar& my_friend_key;
|
ar & my_friend_key;
|
||||||
ar& my_presence;
|
ar & my_presence;
|
||||||
ar& logged_in;
|
ar & logged_in;
|
||||||
}
|
}
|
||||||
friend class boost::serialization::access;
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
|
|
@ -287,9 +287,9 @@ private:
|
||||||
|
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int) {
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
ar& id_code_map;
|
ar & id_code_map;
|
||||||
ar& handle_map;
|
ar & handle_map;
|
||||||
ar& next_handle;
|
ar & next_handle;
|
||||||
}
|
}
|
||||||
friend class boost::serialization::access;
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
|
|
@ -17,8 +17,8 @@ namespace Service::FS {
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void Directory::serialize(Archive& ar, const unsigned int) {
|
void Directory::serialize(Archive& ar, const unsigned int) {
|
||||||
ar& boost::serialization::base_object<Kernel::SessionRequestHandler>(*this);
|
ar& boost::serialization::base_object<Kernel::SessionRequestHandler>(*this);
|
||||||
ar& path;
|
ar & path;
|
||||||
ar& backend;
|
ar & backend;
|
||||||
}
|
}
|
||||||
|
|
||||||
Directory::Directory(std::unique_ptr<FileSys::DirectoryBackend>&& backend,
|
Directory::Directory(std::unique_ptr<FileSys::DirectoryBackend>&& backend,
|
||||||
|
|
|
@ -23,8 +23,8 @@ namespace Service::FS {
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void File::serialize(Archive& ar, const unsigned int) {
|
void File::serialize(Archive& ar, const unsigned int) {
|
||||||
ar& boost::serialization::base_object<Kernel::SessionRequestHandler>(*this);
|
ar& boost::serialization::base_object<Kernel::SessionRequestHandler>(*this);
|
||||||
ar& path;
|
ar & path;
|
||||||
ar& backend;
|
ar & backend;
|
||||||
}
|
}
|
||||||
|
|
||||||
File::File() : File(Core::Global<Kernel::KernelSystem>()) {}
|
File::File() : File(Core::Global<Kernel::KernelSystem>()) {}
|
||||||
|
|
|
@ -27,10 +27,10 @@ private:
|
||||||
void serialize(Archive& ar, const unsigned int) {
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
ar& boost::serialization::base_object<Kernel::SessionRequestHandler::SessionDataBase>(
|
ar& boost::serialization::base_object<Kernel::SessionRequestHandler::SessionDataBase>(
|
||||||
*this);
|
*this);
|
||||||
ar& priority;
|
ar & priority;
|
||||||
ar& offset;
|
ar & offset;
|
||||||
ar& size;
|
ar & size;
|
||||||
ar& subfile;
|
ar & subfile;
|
||||||
}
|
}
|
||||||
friend class boost::serialization::access;
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
|
|
@ -40,7 +40,7 @@ private:
|
||||||
void serialize(Archive& ar, const unsigned int) {
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
ar& boost::serialization::base_object<Kernel::SessionRequestHandler::SessionDataBase>(
|
ar& boost::serialization::base_object<Kernel::SessionRequestHandler::SessionDataBase>(
|
||||||
*this);
|
*this);
|
||||||
ar& program_id;
|
ar & program_id;
|
||||||
}
|
}
|
||||||
friend class boost::serialization::access;
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
@ -725,7 +725,7 @@ private:
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int) {
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
ar& boost::serialization::base_object<Kernel::SessionRequestHandler>(*this);
|
ar& boost::serialization::base_object<Kernel::SessionRequestHandler>(*this);
|
||||||
ar& priority;
|
ar & priority;
|
||||||
}
|
}
|
||||||
friend class boost::serialization::access;
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
|
|
@ -674,11 +674,11 @@ SessionData* GSP_GPU::FindRegisteredThreadData(u32 thread_id) {
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void GSP_GPU::serialize(Archive& ar, const unsigned int) {
|
void GSP_GPU::serialize(Archive& ar, const unsigned int) {
|
||||||
ar& boost::serialization::base_object<Kernel::SessionRequestHandler>(*this);
|
ar& boost::serialization::base_object<Kernel::SessionRequestHandler>(*this);
|
||||||
ar& shared_memory;
|
ar & shared_memory;
|
||||||
ar& active_thread_id;
|
ar & active_thread_id;
|
||||||
ar& first_initialization;
|
ar & first_initialization;
|
||||||
ar& used_thread_ids;
|
ar & used_thread_ids;
|
||||||
ar& saved_vram;
|
ar & saved_vram;
|
||||||
}
|
}
|
||||||
SERIALIZE_IMPL(GSP_GPU)
|
SERIALIZE_IMPL(GSP_GPU)
|
||||||
|
|
||||||
|
@ -737,10 +737,10 @@ std::unique_ptr<Kernel::SessionRequestHandler::SessionDataBase> GSP_GPU::MakeSes
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void SessionData::serialize(Archive& ar, const unsigned int) {
|
void SessionData::serialize(Archive& ar, const unsigned int) {
|
||||||
ar& boost::serialization::base_object<Kernel::SessionRequestHandler::SessionDataBase>(*this);
|
ar& boost::serialization::base_object<Kernel::SessionRequestHandler::SessionDataBase>(*this);
|
||||||
ar& gsp;
|
ar & gsp;
|
||||||
ar& interrupt_event;
|
ar & interrupt_event;
|
||||||
ar& thread_id;
|
ar & thread_id;
|
||||||
ar& registered;
|
ar & registered;
|
||||||
}
|
}
|
||||||
SERIALIZE_IMPL(SessionData)
|
SERIALIZE_IMPL(SessionData)
|
||||||
|
|
||||||
|
|
|
@ -30,24 +30,24 @@ namespace Service::HID {
|
||||||
|
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void Module::serialize(Archive& ar, const unsigned int file_version) {
|
void Module::serialize(Archive& ar, const unsigned int file_version) {
|
||||||
ar& shared_mem;
|
ar & shared_mem;
|
||||||
ar& event_pad_or_touch_1;
|
ar & event_pad_or_touch_1;
|
||||||
ar& event_pad_or_touch_2;
|
ar & event_pad_or_touch_2;
|
||||||
ar& event_accelerometer;
|
ar & event_accelerometer;
|
||||||
ar& event_gyroscope;
|
ar & event_gyroscope;
|
||||||
ar& event_debug_pad;
|
ar & event_debug_pad;
|
||||||
ar& next_pad_index;
|
ar & next_pad_index;
|
||||||
ar& next_touch_index;
|
ar & next_touch_index;
|
||||||
ar& next_accelerometer_index;
|
ar & next_accelerometer_index;
|
||||||
ar& next_gyroscope_index;
|
ar & next_gyroscope_index;
|
||||||
ar& enable_accelerometer_count;
|
ar & enable_accelerometer_count;
|
||||||
ar& enable_gyroscope_count;
|
ar & enable_gyroscope_count;
|
||||||
if (Archive::is_loading::value) {
|
if (Archive::is_loading::value) {
|
||||||
LoadInputDevices();
|
LoadInputDevices();
|
||||||
}
|
}
|
||||||
ar& state.hex;
|
ar & state.hex;
|
||||||
ar& circle_pad_old_x;
|
ar & circle_pad_old_x;
|
||||||
ar& circle_pad_old_y;
|
ar & circle_pad_old_y;
|
||||||
// Update events are set in the constructor
|
// Update events are set in the constructor
|
||||||
// Devices are set from the implementation (and are stateless afaik)
|
// Devices are set from the implementation (and are stateless afaik)
|
||||||
}
|
}
|
||||||
|
|
|
@ -93,11 +93,11 @@ struct ClientCertContext {
|
||||||
private:
|
private:
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int) {
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
ar& handle;
|
ar & handle;
|
||||||
ar& session_id;
|
ar & session_id;
|
||||||
ar& cert_id;
|
ar & cert_id;
|
||||||
ar& certificate;
|
ar & certificate;
|
||||||
ar& private_key;
|
ar & private_key;
|
||||||
}
|
}
|
||||||
friend class boost::serialization::access;
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
@ -115,9 +115,9 @@ struct RootCertChain {
|
||||||
private:
|
private:
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int) {
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
ar& handle;
|
ar & handle;
|
||||||
ar& session_id;
|
ar & session_id;
|
||||||
ar& certificate;
|
ar & certificate;
|
||||||
}
|
}
|
||||||
friend class boost::serialization::access;
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
@ -130,9 +130,9 @@ struct RootCertChain {
|
||||||
private:
|
private:
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int) {
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
ar& handle;
|
ar & handle;
|
||||||
ar& session_id;
|
ar & session_id;
|
||||||
ar& certificates;
|
ar & certificates;
|
||||||
}
|
}
|
||||||
friend class boost::serialization::access;
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
@ -161,10 +161,10 @@ public:
|
||||||
private:
|
private:
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int) {
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
ar& url;
|
ar & url;
|
||||||
ar& username;
|
ar & username;
|
||||||
ar& password;
|
ar & password;
|
||||||
ar& port;
|
ar & port;
|
||||||
}
|
}
|
||||||
friend class boost::serialization::access;
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
@ -176,8 +176,8 @@ public:
|
||||||
private:
|
private:
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int) {
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
ar& username;
|
ar & username;
|
||||||
ar& password;
|
ar & password;
|
||||||
}
|
}
|
||||||
friend class boost::serialization::access;
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
@ -190,8 +190,8 @@ public:
|
||||||
private:
|
private:
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int) {
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
ar& name;
|
ar & name;
|
||||||
ar& value;
|
ar & value;
|
||||||
}
|
}
|
||||||
friend class boost::serialization::access;
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
@ -204,9 +204,9 @@ public:
|
||||||
private:
|
private:
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int) {
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
ar& options;
|
ar & options;
|
||||||
ar& client_cert_ctx;
|
ar & client_cert_ctx;
|
||||||
ar& root_ca_chain;
|
ar & root_ca_chain;
|
||||||
}
|
}
|
||||||
friend class boost::serialization::access;
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
@ -237,9 +237,9 @@ public:
|
||||||
private:
|
private:
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int) {
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
ar& name;
|
ar & name;
|
||||||
ar& value;
|
ar & value;
|
||||||
ar& is_binary;
|
ar & is_binary;
|
||||||
}
|
}
|
||||||
friend class boost::serialization::access;
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
@ -308,11 +308,11 @@ private:
|
||||||
void serialize(Archive& ar, const unsigned int) {
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
ar& boost::serialization::base_object<Kernel::SessionRequestHandler::SessionDataBase>(
|
ar& boost::serialization::base_object<Kernel::SessionRequestHandler::SessionDataBase>(
|
||||||
*this);
|
*this);
|
||||||
ar& current_http_context;
|
ar & current_http_context;
|
||||||
ar& session_id;
|
ar & session_id;
|
||||||
ar& num_http_contexts;
|
ar & num_http_contexts;
|
||||||
ar& num_client_certs;
|
ar & num_client_certs;
|
||||||
ar& initialized;
|
ar & initialized;
|
||||||
}
|
}
|
||||||
friend class boost::serialization::access;
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
@ -880,12 +880,12 @@ private:
|
||||||
// There is a very good chance that saving/loading during a network connection will break,
|
// There is a very good chance that saving/loading during a network connection will break,
|
||||||
// regardless!
|
// regardless!
|
||||||
ar& boost::serialization::base_object<Kernel::SessionRequestHandler>(*this);
|
ar& boost::serialization::base_object<Kernel::SessionRequestHandler>(*this);
|
||||||
ar& ClCertA.certificate;
|
ar & ClCertA.certificate;
|
||||||
ar& ClCertA.private_key;
|
ar & ClCertA.private_key;
|
||||||
ar& ClCertA.init;
|
ar & ClCertA.init;
|
||||||
ar& context_counter;
|
ar & context_counter;
|
||||||
ar& client_certs_counter;
|
ar & client_certs_counter;
|
||||||
ar& client_certs;
|
ar & client_certs;
|
||||||
// NOTE: `contexts` is not serialized because it contains non-serializable data. (i.e.
|
// NOTE: `contexts` is not serialized because it contains non-serializable data. (i.e.
|
||||||
// handles to ongoing HTTP requests.) Serializing across HTTP contexts will break.
|
// handles to ongoing HTTP requests.) Serializing across HTTP contexts will break.
|
||||||
}
|
}
|
||||||
|
|
|
@ -72,8 +72,8 @@ private:
|
||||||
|
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int) {
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
ar& hid_period;
|
ar & hid_period;
|
||||||
ar& calibration_data; // This isn't writeable for now, but might be in future
|
ar & calibration_data; // This isn't writeable for now, but might be in future
|
||||||
if (Archive::is_loading::value) {
|
if (Archive::is_loading::value) {
|
||||||
LoadInputDevices(); // zl, zr, c_stick are loaded here
|
LoadInputDevices(); // zl, zr, c_stick are loaded here
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,11 +23,11 @@ namespace Service::IR {
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void IR_RST::serialize(Archive& ar, const unsigned int) {
|
void IR_RST::serialize(Archive& ar, const unsigned int) {
|
||||||
ar& boost::serialization::base_object<Kernel::SessionRequestHandler>(*this);
|
ar& boost::serialization::base_object<Kernel::SessionRequestHandler>(*this);
|
||||||
ar& update_event;
|
ar & update_event;
|
||||||
ar& shared_memory;
|
ar & shared_memory;
|
||||||
ar& next_pad_index;
|
ar & next_pad_index;
|
||||||
ar& raw_c_stick;
|
ar & raw_c_stick;
|
||||||
ar& update_period;
|
ar & update_period;
|
||||||
// update_callback_id and input devices are set separately
|
// update_callback_id and input devices are set separately
|
||||||
ReloadInputDevices();
|
ReloadInputDevices();
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,12 +26,12 @@ namespace Service::IR {
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void IR_USER::serialize(Archive& ar, const unsigned int) {
|
void IR_USER::serialize(Archive& ar, const unsigned int) {
|
||||||
ar& boost::serialization::base_object<Kernel::SessionRequestHandler>(*this);
|
ar& boost::serialization::base_object<Kernel::SessionRequestHandler>(*this);
|
||||||
ar& conn_status_event;
|
ar & conn_status_event;
|
||||||
ar& send_event;
|
ar & send_event;
|
||||||
ar& receive_event;
|
ar & receive_event;
|
||||||
ar& shared_memory;
|
ar & shared_memory;
|
||||||
ar& connected_device;
|
ar & connected_device;
|
||||||
ar& receive_buffer;
|
ar & receive_buffer;
|
||||||
ar&* extra_hid.get();
|
ar&* extra_hid.get();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -164,10 +164,10 @@ private:
|
||||||
private:
|
private:
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int) {
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
ar& begin_index;
|
ar & begin_index;
|
||||||
ar& end_index;
|
ar & end_index;
|
||||||
ar& packet_count;
|
ar & packet_count;
|
||||||
ar& unknown;
|
ar & unknown;
|
||||||
}
|
}
|
||||||
friend class boost::serialization::access;
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
@ -216,12 +216,12 @@ private:
|
||||||
|
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int) {
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
ar& info;
|
ar & info;
|
||||||
ar& shared_memory;
|
ar & shared_memory;
|
||||||
ar& info_offset;
|
ar & info_offset;
|
||||||
ar& buffer_offset;
|
ar & buffer_offset;
|
||||||
ar& max_packet_count;
|
ar & max_packet_count;
|
||||||
ar& max_data_size;
|
ar & max_data_size;
|
||||||
}
|
}
|
||||||
friend class boost::serialization::access;
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
|
|
@ -20,7 +20,7 @@ private:
|
||||||
void serialize(Archive& ar, const unsigned int) {
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
ar& boost::serialization::base_object<Kernel::SessionRequestHandler::SessionDataBase>(
|
ar& boost::serialization::base_object<Kernel::SessionRequestHandler::SessionDataBase>(
|
||||||
*this);
|
*this);
|
||||||
ar& loaded_crs;
|
ar & loaded_crs;
|
||||||
}
|
}
|
||||||
friend class boost::serialization::access;
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
|
|
@ -118,17 +118,17 @@ private:
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int) {
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
std::shared_ptr<Kernel::SharedMemory> _memory_ref = memory_ref.lock();
|
std::shared_ptr<Kernel::SharedMemory> _memory_ref = memory_ref.lock();
|
||||||
ar& _memory_ref;
|
ar & _memory_ref;
|
||||||
memory_ref = _memory_ref;
|
memory_ref = _memory_ref;
|
||||||
ar& sharedmem_size;
|
ar & sharedmem_size;
|
||||||
ar& size;
|
ar & size;
|
||||||
ar& offset;
|
ar & offset;
|
||||||
ar& initial_offset;
|
ar & initial_offset;
|
||||||
ar& looped_buffer;
|
ar & looped_buffer;
|
||||||
ar& sample_size;
|
ar & sample_size;
|
||||||
ar& gain;
|
ar & gain;
|
||||||
ar& power;
|
ar & power;
|
||||||
ar& sample_rate;
|
ar & sample_rate;
|
||||||
sharedmem_buffer = _memory_ref ? _memory_ref->GetPointer() : nullptr;
|
sharedmem_buffer = _memory_ref ? _memory_ref->GetPointer() : nullptr;
|
||||||
}
|
}
|
||||||
friend class boost::serialization::access;
|
friend class boost::serialization::access;
|
||||||
|
@ -400,19 +400,19 @@ struct MIC_U::Impl {
|
||||||
private:
|
private:
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int file_version) {
|
void serialize(Archive& ar, const unsigned int file_version) {
|
||||||
ar& change_mic_impl_requested;
|
ar & change_mic_impl_requested;
|
||||||
ar& buffer_full_event;
|
ar & buffer_full_event;
|
||||||
// buffer_write_event set in constructor
|
// buffer_write_event set in constructor
|
||||||
ar& shared_memory;
|
ar & shared_memory;
|
||||||
ar& client_version;
|
ar & client_version;
|
||||||
ar& allow_shell_closed;
|
ar & allow_shell_closed;
|
||||||
ar& clamp;
|
ar & clamp;
|
||||||
// mic interface set in constructor
|
// mic interface set in constructor
|
||||||
ar& state;
|
ar & state;
|
||||||
// Maintain the internal mic state
|
// Maintain the internal mic state
|
||||||
ar& encoding;
|
ar & encoding;
|
||||||
bool is_sampling = mic && mic->IsSampling();
|
bool is_sampling = mic && mic->IsSampling();
|
||||||
ar& is_sampling;
|
ar & is_sampling;
|
||||||
if (Archive::is_loading::value) {
|
if (Archive::is_loading::value) {
|
||||||
if (is_sampling) {
|
if (is_sampling) {
|
||||||
CreateMic();
|
CreateMic();
|
||||||
|
|
|
@ -275,13 +275,13 @@ private:
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int) {
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
ar& boost::serialization::base_object<Kernel::SessionRequestHandler>(*this);
|
ar& boost::serialization::base_object<Kernel::SessionRequestHandler>(*this);
|
||||||
ar& daemon_bit_mask;
|
ar & daemon_bit_mask;
|
||||||
ar& default_daemon_bit_mask;
|
ar & default_daemon_bit_mask;
|
||||||
ar& daemon_status;
|
ar & daemon_status;
|
||||||
ar& exclusive_state;
|
ar & exclusive_state;
|
||||||
ar& scan_interval;
|
ar & scan_interval;
|
||||||
ar& retry_interval;
|
ar & retry_interval;
|
||||||
ar& daemon_lock_enabled;
|
ar & daemon_lock_enabled;
|
||||||
}
|
}
|
||||||
friend class boost::serialization::access;
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
|
|
@ -45,10 +45,10 @@ constexpr std::array<u8, 8> news_system_savedata_id{
|
||||||
|
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void Module::serialize(Archive& ar, const unsigned int) {
|
void Module::serialize(Archive& ar, const unsigned int) {
|
||||||
ar& db;
|
ar & db;
|
||||||
ar& notification_ids;
|
ar & notification_ids;
|
||||||
ar& automatic_sync_flag;
|
ar & automatic_sync_flag;
|
||||||
ar& news_system_save_data_archive;
|
ar & news_system_save_data_archive;
|
||||||
}
|
}
|
||||||
SERIALIZE_IMPL(Module)
|
SERIALIZE_IMPL(Module)
|
||||||
|
|
||||||
|
|
|
@ -26,8 +26,8 @@ struct NewsDBHeader {
|
||||||
private:
|
private:
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int) {
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
ar& valid;
|
ar & valid;
|
||||||
ar& flags;
|
ar & flags;
|
||||||
}
|
}
|
||||||
friend class boost::serialization::access;
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
@ -57,19 +57,19 @@ struct NotificationHeader {
|
||||||
private:
|
private:
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int) {
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
ar& flag_valid;
|
ar & flag_valid;
|
||||||
ar& flag_read;
|
ar & flag_read;
|
||||||
ar& flag_jpeg;
|
ar & flag_jpeg;
|
||||||
ar& flag_boss;
|
ar & flag_boss;
|
||||||
ar& flag_optout;
|
ar & flag_optout;
|
||||||
ar& flag_url;
|
ar & flag_url;
|
||||||
ar& flag_unk0x6;
|
ar & flag_unk0x6;
|
||||||
ar& program_id;
|
ar & program_id;
|
||||||
ar& ns_data_id;
|
ar & ns_data_id;
|
||||||
ar& version;
|
ar & version;
|
||||||
ar& jump_param;
|
ar & jump_param;
|
||||||
ar& date_time;
|
ar & date_time;
|
||||||
ar& title;
|
ar & title;
|
||||||
}
|
}
|
||||||
friend class boost::serialization::access;
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
@ -82,8 +82,8 @@ struct NewsDB {
|
||||||
private:
|
private:
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int) {
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
ar& header;
|
ar & header;
|
||||||
ar& notifications;
|
ar & notifications;
|
||||||
}
|
}
|
||||||
friend class boost::serialization::access;
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
|
|
@ -16,8 +16,8 @@ namespace Service::NFC {
|
||||||
|
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void Module::serialize(Archive& ar, const unsigned int) {
|
void Module::serialize(Archive& ar, const unsigned int) {
|
||||||
ar& nfc_mode;
|
ar & nfc_mode;
|
||||||
ar& device;
|
ar & device;
|
||||||
}
|
}
|
||||||
SERIALIZE_IMPL(Module)
|
SERIALIZE_IMPL(Module)
|
||||||
|
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue