Merge remote-tracking branch 'upstream/master' into fix-smashbros

This commit is contained in:
Reg Tiangha 2024-04-16 07:33:14 -06:00
commit a378014156
No known key found for this signature in database
GPG Key ID: 00D437798B1C2970
144 changed files with 1025 additions and 1023 deletions

View File

@ -7,7 +7,7 @@ if grep -nrI '\s$' src *.yml *.txt *.md Doxyfile .gitignore .gitmodules .ci* dis
fi fi
# Default clang-format points to default 3.5 version one # Default clang-format points to default 3.5 version one
CLANG_FORMAT=clang-format-15 CLANG_FORMAT=clang-format-18
$CLANG_FORMAT --version $CLANG_FORMAT --version
if [ "$GITHUB_EVENT_NAME" = "pull_request" ]; then if [ "$GITHUB_EVENT_NAME" = "pull_request" ]; then

View File

@ -2,7 +2,7 @@
if [ "$TARGET" = "appimage" ]; then if [ "$TARGET" = "appimage" ]; then
# Compile the AppImage we distribute with Clang. # Compile the AppImage we distribute with Clang.
export EXTRA_CMAKE_FLAGS=(-DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER=clang -DCMAKE_LINKER=/etc/bin/ld.lld) export EXTRA_CMAKE_FLAGS=(-DCMAKE_LINKER=/etc/bin/ld.lld)
else else
# For the linux-fresh verification target, verify compilation without PCH as well. # For the linux-fresh verification target, verify compilation without PCH as well.
export EXTRA_CMAKE_FLAGS=(-DCITRA_USE_PRECOMPILED_HEADERS=OFF) export EXTRA_CMAKE_FLAGS=(-DCITRA_USE_PRECOMPILED_HEADERS=OFF)
@ -13,6 +13,8 @@ cmake .. -G Ninja \
-DCMAKE_BUILD_TYPE=Release \ -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_C_COMPILER_LAUNCHER=ccache \ -DCMAKE_C_COMPILER_LAUNCHER=ccache \
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \
-DCMAKE_CXX_COMPILER=clang++-18 \
-DCMAKE_C_COMPILER=clang-18 \
"${EXTRA_CMAKE_FLAGS[@]}" \ "${EXTRA_CMAKE_FLAGS[@]}" \
-DENABLE_QT_TRANSLATION=ON \ -DENABLE_QT_TRANSLATION=ON \
-DCITRA_ENABLE_COMPATIBILITY_REPORTING=ON \ -DCITRA_ENABLE_COMPATIBILITY_REPORTING=ON \

View File

@ -28,7 +28,7 @@ jobs:
matrix: matrix:
target: ["appimage", "fresh"] target: ["appimage", "fresh"]
container: container:
image: polarzincomfrio/lime-build-environments:linux-${{ matrix.target }} image: opensauce04/lime3ds-build:latest
options: -u 1001 options: -u 1001
env: env:
CCACHE_DIR: ${{ github.workspace }}/.ccache CCACHE_DIR: ${{ github.workspace }}/.ccache

View File

@ -10,7 +10,7 @@ jobs:
clang-format: clang-format:
runs-on: ubuntu-latest runs-on: ubuntu-latest
container: container:
image: polarzincomfrio/lime-build-environments:linux-fresh image: opensauce04/lime3ds-build:latest
options: -u 1001 options: -u 1001
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4

View File

@ -117,7 +117,7 @@ else()
if (NOT CMAKE_BUILD_TYPE STREQUAL Debug) if (NOT CMAKE_BUILD_TYPE STREQUAL Debug)
# _FORTIFY_SOURCE can't be used without optimizations. # _FORTIFY_SOURCE can't be used without optimizations.
add_compile_options(-Wp,-D_FORTIFY_SOURCE=2) add_compile_options(-D_FORTIFY_SOURCE=2)
endif() endif()
if (CITRA_WARNINGS_AS_ERRORS) if (CITRA_WARNINGS_AS_ERRORS)

View File

@ -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

View File

@ -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;

View File

@ -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;

View File

@ -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!");

View File

@ -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")) {

View File

@ -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;

View File

@ -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;
}; };

View File

@ -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;
}; };

View File

@ -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;
}; };

View File

@ -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)

View File

@ -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.

View File

@ -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);

View File

@ -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;

View File

@ -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"};

View File

@ -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)

View File

@ -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;
} }
}; };

View File

@ -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;

View File

@ -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;
} }

View File

@ -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

View File

@ -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;

View File

@ -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;

View File

@ -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) {

View File

@ -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;
} }

View File

@ -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;
}; };

View File

@ -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;
}; };

View File

@ -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;
}; };

View File

@ -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;
}; };

View File

@ -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;
}; };

View File

@ -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;
}; };

View File

@ -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;
}; };

View File

@ -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;
}; };

View File

@ -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;
}; };

View File

@ -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;
}; };

View File

@ -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;
}; };

View File

@ -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;
} }

View File

@ -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;
}; };

View File

@ -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;
}; };

View File

@ -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();
} }

View File

@ -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;
}; };

View File

@ -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;
}; };

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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;
}; };

View File

@ -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)

View File

@ -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)

View File

@ -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;
} }

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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;
}; };

View File

@ -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)

View File

@ -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)

View File

@ -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;
} }

View File

@ -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
} }

View File

@ -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;
}; };

View File

@ -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)

View File

@ -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)

View File

@ -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();

View File

@ -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)

View File

@ -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;
}; };

View File

@ -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)

View File

@ -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)

View File

@ -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);

View File

@ -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;
}; };

View File

@ -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{{

View File

@ -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;
}; };

View File

@ -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)

View File

@ -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;
}; };

View File

@ -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)

View File

@ -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;
}; };

View File

@ -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;
}; };

View File

@ -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;
}; };

View File

@ -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;
}; };

View File

@ -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,

View File

@ -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>()) {}

View File

@ -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;
}; };

View File

@ -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;
}; };

View File

@ -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)

View File

@ -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)
} }

View File

@ -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.
} }

View File

@ -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
} }

View File

@ -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();
} }

View File

@ -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;
}; };

View File

@ -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;
}; };

Some files were not shown because too many files have changed in this diff Show More