code: Remove some old msvc workarounds
This commit is contained in:
@ -46,14 +46,8 @@ __declspec(dllimport) void __stdcall DebugBreak(void);
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef _MSC_VER
|
#ifdef _MSC_VER
|
||||||
#if (_MSC_VER < 1900)
|
|
||||||
// Function Cross-Compatibility
|
|
||||||
#define snprintf _snprintf
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Locale Cross-Compatibility
|
// Locale Cross-Compatibility
|
||||||
#define locale_t _locale_t
|
#define locale_t _locale_t
|
||||||
|
|
||||||
#endif // _MSC_VER
|
#endif // _MSC_VER
|
||||||
|
|
||||||
#define DECLARE_ENUM_FLAG_OPERATORS(type) \
|
#define DECLARE_ENUM_FLAG_OPERATORS(type) \
|
||||||
|
@ -105,8 +105,6 @@ public:
|
|||||||
private:
|
private:
|
||||||
// It is important to separate the below atomics for performance reasons:
|
// It is important to separate the below atomics for performance reasons:
|
||||||
// Having them on the same cache-line would result in false-sharing between them.
|
// Having them on the same cache-line would result in false-sharing between them.
|
||||||
// TODO: Remove this ifdef whenever clang and GCC support
|
|
||||||
// std::hardware_destructive_interference_size.
|
|
||||||
#if defined(_MSC_VER) && _MSC_VER >= 1911
|
#if defined(_MSC_VER) && _MSC_VER >= 1911
|
||||||
static constexpr std::size_t padding_size =
|
static constexpr std::size_t padding_size =
|
||||||
std::hardware_destructive_interference_size - sizeof(std::atomic_size_t);
|
std::hardware_destructive_interference_size - sizeof(std::atomic_size_t);
|
||||||
|
@ -95,12 +95,8 @@ struct FrameBufferUpdate {
|
|||||||
u32 pad2;
|
u32 pad2;
|
||||||
};
|
};
|
||||||
static_assert(sizeof(FrameBufferUpdate) == 0x40, "Struct has incorrect size");
|
static_assert(sizeof(FrameBufferUpdate) == 0x40, "Struct has incorrect size");
|
||||||
// TODO: Not sure if this padding is correct.
|
|
||||||
// Chances are the second block is stored at offset 0x24 rather than 0x20.
|
|
||||||
#ifndef _MSC_VER
|
|
||||||
static_assert(offsetof(FrameBufferUpdate, framebuffer_info[1]) == 0x20,
|
static_assert(offsetof(FrameBufferUpdate, framebuffer_info[1]) == 0x20,
|
||||||
"FrameBufferInfo element has incorrect alignment");
|
"FrameBufferInfo element has incorrect alignment");
|
||||||
#endif
|
|
||||||
|
|
||||||
/// GSP command
|
/// GSP command
|
||||||
struct Command {
|
struct Command {
|
||||||
|
@ -64,22 +64,14 @@ private:
|
|||||||
};
|
};
|
||||||
static_assert(std::is_standard_layout<Regs>::value, "Structure does not use standard layout");
|
static_assert(std::is_standard_layout<Regs>::value, "Structure does not use standard layout");
|
||||||
|
|
||||||
// TODO: MSVC does not support using offsetof() on non-static data members even though this
|
|
||||||
// is technically allowed since C++11. This macro should be enabled once MSVC adds
|
|
||||||
// support for that.
|
|
||||||
#ifndef _MSC_VER
|
|
||||||
#define ASSERT_REG_POSITION(field_name, position) \
|
#define ASSERT_REG_POSITION(field_name, position) \
|
||||||
static_assert(offsetof(Regs, field_name) == position * 4, \
|
static_assert(offsetof(Regs, field_name) == position * 4, \
|
||||||
"Field " #field_name " has invalid position")
|
"Field " #field_name " has invalid position")
|
||||||
|
|
||||||
ASSERT_REG_POSITION(color_fill_top, 0x81);
|
ASSERT_REG_POSITION(color_fill_top, 0x81);
|
||||||
ASSERT_REG_POSITION(backlight_top, 0x90);
|
ASSERT_REG_POSITION(backlight_top, 0x90);
|
||||||
ASSERT_REG_POSITION(color_fill_bottom, 0x281);
|
ASSERT_REG_POSITION(color_fill_bottom, 0x281);
|
||||||
ASSERT_REG_POSITION(backlight_bottom, 0x290);
|
ASSERT_REG_POSITION(backlight_bottom, 0x290);
|
||||||
|
|
||||||
#undef ASSERT_REG_POSITION
|
|
||||||
#endif // !defined(_MSC_VER)
|
|
||||||
|
|
||||||
extern Regs g_regs;
|
extern Regs g_regs;
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
|
Reference in New Issue
Block a user