C-style cast cleanup III

This commit is contained in:
Nekotekina 2019-11-30 02:11:28 +03:00
parent ad9c9f0183
commit 28eacc616a
18 changed files with 143 additions and 94 deletions

View File

@ -252,6 +252,11 @@ void asmjit::build_transaction_abort(asmjit::X86Assembler& c, unsigned char code
#ifdef _MSC_VER #ifdef _MSC_VER
#pragma warning(push, 0) #pragma warning(push, 0)
#else
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wall"
#pragma GCC diagnostic ignored "-Wextra"
#pragma GCC diagnostic ignored "-Wold-style-cast"
#endif #endif
#include "llvm/Support/TargetSelect.h" #include "llvm/Support/TargetSelect.h"
#include "llvm/Support/FormattedStream.h" #include "llvm/Support/FormattedStream.h"
@ -261,6 +266,8 @@ void asmjit::build_transaction_abort(asmjit::X86Assembler& c, unsigned char code
#include "llvm/ExecutionEngine/ObjectCache.h" #include "llvm/ExecutionEngine/ObjectCache.h"
#ifdef _MSC_VER #ifdef _MSC_VER
#pragma warning(pop) #pragma warning(pop)
#else
#pragma GCC diagnostic pop
#endif #endif
#ifdef _WIN32 #ifdef _WIN32

View File

@ -1,9 +1,22 @@
#pragma once #pragma once
// Include asmjit with warnings ignored
#define ASMJIT_EMBED #define ASMJIT_EMBED
#define ASMJIT_DEBUG #define ASMJIT_DEBUG
#ifdef _MSC_VER
#pragma warning(push, 0)
#include <asmjit/asmjit.h> #include <asmjit/asmjit.h>
#pragma warning(pop)
#else
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wall"
#pragma GCC diagnostic ignored "-Wextra"
#pragma GCC diagnostic ignored "-Wold-style-cast"
#include <asmjit/asmjit.h>
#pragma GCC diagnostic pop
#endif
#include <array> #include <array>
#include <functional> #include <functional>
@ -100,12 +113,19 @@ FT build_function_asm(F&& builder)
#include "restore_new.h" #include "restore_new.h"
#ifdef _MSC_VER #ifdef _MSC_VER
#pragma warning(push, 0) #pragma warning(push, 0)
#else
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wall"
#pragma GCC diagnostic ignored "-Wextra"
#pragma GCC diagnostic ignored "-Wold-style-cast"
#endif #endif
#include "llvm/IR/LLVMContext.h" #include "llvm/IR/LLVMContext.h"
#include "llvm/IR/Module.h" #include "llvm/IR/Module.h"
#include "llvm/ExecutionEngine/ExecutionEngine.h" #include "llvm/ExecutionEngine/ExecutionEngine.h"
#ifdef _MSC_VER #ifdef _MSC_VER
#pragma warning(pop) #pragma warning(pop)
#else
#pragma GCC diagnostic pop
#endif #endif
#include "define_new_memleakdetect.h" #include "define_new_memleakdetect.h"

View File

@ -140,12 +140,12 @@ namespace utils
// other after this // other after this
if (other.start > end) if (other.start > end)
{ {
return (s32)(other.start - end - 1); return static_cast<s32>(other.start - end - 1);
} }
// this after other // this after other
AUDIT(start > other.end); AUDIT(start > other.end);
return -((s32)(start - other.end - 1)); return -static_cast<s32>(start - other.end - 1);
} }
u32 distance(const address_range &other) const u32 distance(const address_range &other) const
@ -577,7 +577,8 @@ namespace utils
} // namespace utils } // namespace utils
namespace std { namespace std
{
static_assert(sizeof(size_t) >= 2 * sizeof(u32), "size_t must be at least twice the size of u32"); static_assert(sizeof(size_t) >= 2 * sizeof(u32), "size_t must be at least twice the size of u32");
template <> template <>

View File

@ -114,7 +114,7 @@ struct size2_base
template<typename NT> template<typename NT>
constexpr operator size2_base<NT>() const constexpr operator size2_base<NT>() const
{ {
return{ (NT)width, (NT)height }; return{ static_cast<NT>(width), static_cast<NT>(height) };
} }
}; };
@ -142,11 +142,11 @@ struct position1_base
template<typename RhsT> template<typename RhsT>
position1_base operator *(RhsT rhs) const position1_base operator *(RhsT rhs) const
{ {
return{ T(x * rhs) }; return{ static_cast<T>(x * rhs) };
} }
position1_base operator *(const position1_base& rhs) const position1_base operator *(const position1_base& rhs) const
{ {
return{ T(x * rhs.x) }; return{ static_cast<T>(x * rhs.x) };
} }
template<typename RhsT> template<typename RhsT>
position1_base operator /(RhsT rhs) const position1_base operator /(RhsT rhs) const
@ -225,7 +225,7 @@ struct position1_base
template<typename NT> template<typename NT>
operator position1_base<NT>() const operator position1_base<NT>() const
{ {
return{ (NT)x }; return{ static_cast<NT>(x) };
} }
double distance(const position1_base& to) double distance(const position1_base& to)
@ -303,11 +303,11 @@ struct position2_base
template<typename RhsT> template<typename RhsT>
constexpr position2_base operator *(RhsT rhs) const constexpr position2_base operator *(RhsT rhs) const
{ {
return{ T(x * rhs), T(y * rhs) }; return{ static_cast<T>(x * rhs), static_cast<T>(y * rhs) };
} }
constexpr position2_base operator *(const position2_base& rhs) const constexpr position2_base operator *(const position2_base& rhs) const
{ {
return{ T(x * rhs.x), T(y * rhs.y) }; return{ static_cast<T>(x * rhs.x), static_cast<T>(y * rhs.y) };
} }
template<typename RhsT> template<typename RhsT>
constexpr position2_base operator /(RhsT rhs) const constexpr position2_base operator /(RhsT rhs) const
@ -398,12 +398,12 @@ struct position2_base
template<typename NT> template<typename NT>
constexpr operator position2_base<NT>() const constexpr operator position2_base<NT>() const
{ {
return{ (NT)x, (NT)y }; return{ static_cast<NT>(x), static_cast<NT>(y) };
} }
double distance(const position2_base& to) const double distance(const position2_base& to) const
{ {
return std::sqrt(double((x - to.x) * (x - to.x) + (y - to.y) * (y - to.y))); return std::sqrt((x - to.x) * (x - to.x) + (y - to.y) * (y - to.y));
} }
}; };
@ -490,7 +490,7 @@ struct position3_base
template<typename NT> template<typename NT>
operator position3_base<NT>() const operator position3_base<NT>() const
{ {
return{ (NT)x, (NT)y, (NT)z }; return{ static_cast<NT>(x), static_cast<NT>(y), static_cast<NT>(z) };
} }
}; };
@ -580,7 +580,7 @@ struct position4_base
template<typename NT> template<typename NT>
constexpr operator position4_base<NT>() const constexpr operator position4_base<NT>() const
{ {
return{ (NT)x, (NT)y, (NT)z, (NT)w }; return{ static_cast<NT>(x), static_cast<NT>(y), static_cast<NT>(z), static_cast<NT>(w) };
} }
}; };
@ -652,7 +652,7 @@ struct coord_base
template<typename NT> template<typename NT>
constexpr operator coord_base<NT>() const constexpr operator coord_base<NT>() const
{ {
return{ (NT)x, (NT)y, (NT)width, (NT)height }; return{ static_cast<NT>(x), static_cast<NT>(y), static_cast<NT>(width), static_cast<NT>(height) };
} }
}; };
@ -755,13 +755,13 @@ struct area_base
} }
constexpr area_base operator * (const f32& value) const constexpr area_base operator * (const f32& value) const
{ {
return{ (T)(x1 * value), (T)(y1 * value), (T)(x2 * value), (T)(y2 * value) }; return{ static_cast<T>(x1 * value), static_cast<T>(y1 * value), static_cast<T>(x2 * value), static_cast<T>(y2 * value) };
} }
template<typename NT> template<typename NT>
constexpr operator area_base<NT>() const constexpr operator area_base<NT>() const
{ {
return{ (NT)x1, (NT)y1, (NT)x2, (NT)y2 }; return{ static_cast<NT>(x1), static_cast<NT>(y1), static_cast<NT>(x2), static_cast<NT>(y2) };
} }
}; };
@ -824,7 +824,7 @@ struct coord3_base
template<typename NT> template<typename NT>
constexpr operator coord3_base<NT>() const constexpr operator coord3_base<NT>() const
{ {
return{ (NT)x, (NT)y, (NT)z, (NT)width, (NT)height, (NT)depth }; return{ static_cast<NT>(x), static_cast<NT>(y), static_cast<NT>(z), static_cast<NT>(width), static_cast<NT>(height), static_cast<NT>(depth) };
} }
}; };
@ -877,7 +877,7 @@ struct color4_base
template<typename NT> template<typename NT>
constexpr operator color4_base<NT>() const constexpr operator color4_base<NT>() const
{ {
return{ (NT)x, (NT)y, (NT)z, (NT)w }; return{ static_cast<NT>(x), static_cast<NT>(y), static_cast<NT>(z), static_cast<NT>(w) };
} }
}; };
@ -920,7 +920,7 @@ struct color3_base
template<typename NT> template<typename NT>
constexpr operator color3_base<NT>() const constexpr operator color3_base<NT>() const
{ {
return{ (NT)x, (NT)y, (NT)z }; return{ static_cast<NT>(x), static_cast<NT>(y), static_cast<NT>(z) };
} }
}; };
@ -962,7 +962,7 @@ struct color2_base
template<typename NT> template<typename NT>
constexpr operator color2_base<NT>() const constexpr operator color2_base<NT>() const
{ {
return{ (NT)x, (NT)y }; return{ static_cast<NT>(x), static_cast<NT>(y) };
} }
}; };
@ -993,7 +993,7 @@ struct color1_base
template<typename NT> template<typename NT>
constexpr operator color1_base<NT>() const constexpr operator color1_base<NT>() const
{ {
return{ (NT)x }; return{ static_cast<NT>(x) };
} }
}; };

View File

@ -5,6 +5,11 @@
#include "restore_new.h" #include "restore_new.h"
#ifdef _MSC_VER #ifdef _MSC_VER
#pragma warning(push, 0) #pragma warning(push, 0)
#else
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wall"
#pragma GCC diagnostic ignored "-Wextra"
#pragma GCC diagnostic ignored "-Wold-style-cast"
#endif #endif
#include "llvm/IR/LLVMContext.h" #include "llvm/IR/LLVMContext.h"
#include "llvm/IR/IRBuilder.h" #include "llvm/IR/IRBuilder.h"
@ -13,6 +18,8 @@
#include "llvm/Analysis/ConstantFolding.h" #include "llvm/Analysis/ConstantFolding.h"
#ifdef _MSC_VER #ifdef _MSC_VER
#pragma warning(pop) #pragma warning(pop)
#else
#pragma GCC diagnostic pop
#endif #endif
#include "define_new_memleakdetect.h" #include "define_new_memleakdetect.h"

View File

@ -19,6 +19,11 @@
#include "restore_new.h" #include "restore_new.h"
#ifdef _MSC_VER #ifdef _MSC_VER
#pragma warning(push, 0) #pragma warning(push, 0)
#else
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wall"
#pragma GCC diagnostic ignored "-Wextra"
#pragma GCC diagnostic ignored "-Wold-style-cast"
#endif #endif
#include "llvm/Support/FormattedStream.h" #include "llvm/Support/FormattedStream.h"
#include "llvm/Support/MemoryBuffer.h" #include "llvm/Support/MemoryBuffer.h"
@ -44,6 +49,8 @@
#include "llvm/Transforms/Vectorize.h" #include "llvm/Transforms/Vectorize.h"
#ifdef _MSC_VER #ifdef _MSC_VER
#pragma warning(pop) #pragma warning(pop)
#else
#pragma GCC diagnostic pop
#endif #endif
#include "define_new_memleakdetect.h" #include "define_new_memleakdetect.h"

View File

@ -3187,6 +3187,15 @@ void spu_recompiler_base::dump(const spu_program& result, std::string& out)
#ifdef LLVM_AVAILABLE #ifdef LLVM_AVAILABLE
#include "Emu/CPU/CPUTranslator.h" #include "Emu/CPU/CPUTranslator.h"
#ifdef _MSC_VER
#pragma warning(push, 0)
#else
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wall"
#pragma GCC diagnostic ignored "-Wextra"
#pragma GCC diagnostic ignored "-Wold-style-cast"
#endif
#include "llvm/ADT/Triple.h" #include "llvm/ADT/Triple.h"
#include "llvm/IR/LegacyPassManager.h" #include "llvm/IR/LegacyPassManager.h"
#include "llvm/IR/Verifier.h" #include "llvm/IR/Verifier.h"
@ -3196,6 +3205,11 @@ void spu_recompiler_base::dump(const spu_program& result, std::string& out)
#include "llvm/Transforms/Scalar.h" #include "llvm/Transforms/Scalar.h"
#include "llvm/Transforms/IPO.h" #include "llvm/Transforms/IPO.h"
#include "llvm/Transforms/Vectorize.h" #include "llvm/Transforms/Vectorize.h"
#ifdef _MSC_VER
#pragma warning(pop)
#else
#pragma GCC diagnostic pop
#endif
class spu_llvm_recompiler : public spu_recompiler_base, public cpu_translator class spu_llvm_recompiler : public spu_recompiler_base, public cpu_translator
{ {

View File

@ -135,7 +135,7 @@ error_code sys_rsx_context_allocate(vm::ptr<u32> context_id, vm::ptr<u64> lpar_d
} }
const auto area = vm::reserve_map(vm::rsx_context, 0, 0x10000000, 0x403); const auto area = vm::reserve_map(vm::rsx_context, 0, 0x10000000, 0x403);
const u32 context_base = area ? area->alloc(0x300000) : 0; const u32 context_base = area ? area->alloc(0x300000) : 0;
if (!context_base) if (!context_base)
{ {
@ -433,7 +433,7 @@ error_code sys_rsx_context_attribute(u32 context_id, u32 package_id, u64 a3, u64
render->display_buffers[id].pitch = pitch; render->display_buffers[id].pitch = pitch;
render->display_buffers[id].offset = offset; render->display_buffers[id].offset = offset;
render->display_buffers_count = std::max((u32)id + 1, render->display_buffers_count); render->display_buffers_count = std::max<u32>(id + 1, render->display_buffers_count);
} }
break; break;
@ -536,7 +536,7 @@ error_code sys_rsx_context_attribute(u32 context_id, u32 package_id, u64 a3, u64
// we only ever use head 1 for now // we only ever use head 1 for now
driverInfo.head[1].flipFlags |= 0x80000000; driverInfo.head[1].flipFlags |= 0x80000000;
driverInfo.head[1].lastFlipTime = rsxTimeStamp(); // should rsxthread set this? driverInfo.head[1].lastFlipTime = rsxTimeStamp(); // should rsxthread set this?
driverInfo.head[1].flipBufferId = (u32)a3; driverInfo.head[1].flipBufferId = static_cast<u32>(a3);
// seems gcmSysWaitLabel uses this offset, so lets set it to 0 every flip // seems gcmSysWaitLabel uses this offset, so lets set it to 0 every flip
vm::_ref<u32>(render->label_addr + 0x10) = 0; vm::_ref<u32>(render->label_addr + 0x10) = 0;
@ -597,7 +597,7 @@ error_code sys_rsx_device_map(vm::ptr<u64> dev_addr, vm::ptr<u64> a2, u32 dev_id
if (!rsx_cfg->device_addr) if (!rsx_cfg->device_addr)
{ {
const auto area = vm::reserve_map(vm::rsx_context, 0, 0x10000000, 0x403); const auto area = vm::reserve_map(vm::rsx_context, 0, 0x10000000, 0x403);
const u32 addr = area ? area->alloc(0x100000) : 0; const u32 addr = area ? area->alloc(0x100000) : 0;
if (!addr) if (!addr)
{ {

View File

@ -532,8 +532,8 @@ public:
alignas(16) f32 tmp[4]; alignas(16) f32 tmp[4];
for (size_t offset_in_fragment_program : I->second.FragmentConstantOffsetCache) for (size_t offset_in_fragment_program : I->second.FragmentConstantOffsetCache)
{ {
char* data = (char*)fragment_program.addr + (u32)offset_in_fragment_program; char* data = static_cast<char*>(fragment_program.addr) + offset_in_fragment_program;
const __m128i vector = _mm_loadu_si128((__m128i*)data); const __m128i vector = _mm_loadu_si128(reinterpret_cast<__m128i*>(data));
const __m128i shuffled_vector = _mm_or_si128(_mm_slli_epi16(vector, 8), _mm_srli_epi16(vector, 8)); const __m128i shuffled_vector = _mm_or_si128(_mm_slli_epi16(vector, 8), _mm_srli_epi16(vector, 8));
if (!patch_table.is_empty()) if (!patch_table.is_empty())

View File

@ -74,7 +74,7 @@ namespace rsx
vertex(int x, int y, int z, int w) vertex(int x, int y, int z, int w)
{ {
vec4((f32)x, (f32)y, (f32)z, (f32)w); vec4(static_cast<f32>(x), static_cast<f32>(y), static_cast<f32>(z), static_cast<f32>(w));
} }
float& operator[](int index) float& operator[](int index)
@ -165,7 +165,7 @@ namespace rsx
return f.get(); return f.get();
} }
fonts.push_back(std::make_unique<font>(name, (f32)size)); fonts.push_back(std::make_unique<font>(name, static_cast<f32>(size)));
return fonts.back().get(); return fonts.back().get();
} }
@ -209,12 +209,12 @@ namespace rsx
std::vector<u8> bytes; std::vector<u8> bytes;
fs::file f(filename); fs::file f(filename);
f.read(bytes, f.size()); f.read(bytes, f.size());
data = stbi_load_from_memory(bytes.data(), (s32)f.size(), &w, &h, &bpp, STBI_rgb_alpha); data = stbi_load_from_memory(bytes.data(), ::narrow<int>(f.size()), &w, &h, &bpp, STBI_rgb_alpha);
} }
image_info(const std::vector<u8>& bytes) image_info(const std::vector<u8>& bytes)
{ {
data = stbi_load_from_memory(bytes.data(), (s32)bytes.size(), &w, &h, &bpp, STBI_rgb_alpha); data = stbi_load_from_memory(bytes.data(), ::narrow<int>(bytes.size()), &w, &h, &bpp, STBI_rgb_alpha);
} }
~image_info() ~image_info()
@ -505,8 +505,8 @@ namespace rsx
virtual void translate(s16 _x, s16 _y) virtual void translate(s16 _x, s16 _y)
{ {
x = (u16)(x + _x); x = static_cast<u16>(x + _x);
y = (u16)(y + _y); y = static_cast<u16>(y + _y);
is_compiled = false; is_compiled = false;
} }
@ -515,12 +515,12 @@ namespace rsx
{ {
if (origin_scaling) if (origin_scaling)
{ {
x = (u16)(_x * x); x = static_cast<u16>(_x * x);
y = (u16)(_y * y); y = static_cast<u16>(_y * y);
} }
w = (u16)(_x * w); w = static_cast<u16>(_x * w);
h = (u16)(_y * h); h = static_cast<u16>(_y * h);
is_compiled = false; is_compiled = false;
} }
@ -626,7 +626,7 @@ namespace rsx
// Apply transform. // Apply transform.
// (0, 0) has text sitting one line off the top left corner (text is outside the rect) hence the offset by text height // (0, 0) has text sitting one line off the top left corner (text is outside the rect) hence the offset by text height
v.values[0] += x + padding_left; v.values[0] += x + padding_left;
v.values[1] += y + padding_top + (f32)renderer->size_px; v.values[1] += y + padding_top + static_cast<f32>(renderer->size_px);
} }
if (alignment == center) if (alignment == center)
@ -711,7 +711,7 @@ namespace rsx
cmd_text.config.set_font(font_ref ? font_ref : fontmgr::get("Arial", 12)); cmd_text.config.set_font(font_ref ? font_ref : fontmgr::get("Arial", 12));
cmd_text.config.color = fore_color; cmd_text.config.color = fore_color;
cmd_text.verts = render_text(text.c_str(), (f32)x, (f32)y); cmd_text.verts = render_text(text.c_str(), static_cast<f32>(x), static_cast<f32>(y));
if (!cmd_text.verts.empty()) if (!cmd_text.verts.empty())
compiled_resources.add(std::move(compiled_resources_temp), margin_left, margin_top); compiled_resources.add(std::move(compiled_resources_temp), margin_left, margin_top);
@ -737,13 +737,13 @@ namespace rsx
f32 unused = 0.f; f32 unused = 0.f;
f32 max_w = 0.f; f32 max_w = 0.f;
f32 last_word = 0.f; f32 last_word = 0.f;
height = (u16)renderer->size_px; height = static_cast<u16>(renderer->size_px);
for (auto c : text) for (auto c : text)
{ {
if (c == '\n') if (c == '\n')
{ {
height += (u16)renderer->size_px + 2; height += static_cast<u16>(renderer->size_px + 2);
max_w = std::max(max_w, text_width); max_w = std::max(max_w, text_width);
text_width = 0.f; text_width = 0.f;
last_word = 0.f; last_word = 0.f;
@ -755,7 +755,7 @@ namespace rsx
last_word = text_width; last_word = text_width;
} }
if (u8(c) > renderer->char_count) if (static_cast<u8>(c) > renderer->char_count)
{ {
// Non-existent glyph // Non-existent glyph
text_width += renderer->em_size; text_width += renderer->em_size;
@ -771,13 +771,13 @@ namespace rsx
{ {
max_w = std::max(max_w, last_word); max_w = std::max(max_w, last_word);
text_width -= (last_word + renderer->em_size); text_width -= (last_word + renderer->em_size);
height += (u16)renderer->size_px + 2; height += static_cast<u16>(renderer->size_px + 2);
} }
} }
} }
max_w = std::max(max_w, text_width); max_w = std::max(max_w, text_width);
width = (u16)ceilf(max_w); width = static_cast<u16>(ceilf(max_w));
} }
}; };
@ -817,8 +817,8 @@ namespace rsx
void set_pos(u16 _x, u16 _y) override void set_pos(u16 _x, u16 _y) override
{ {
s16 dx = (s16)(_x - x); s16 dx = static_cast<s16>(_x - x);
s16 dy = (s16)(_y - y); s16 dy = static_cast<s16>(_y - y);
translate(dx, dy); translate(dx, dy);
} }
@ -877,12 +877,12 @@ namespace rsx
if (!is_compiled) if (!is_compiled)
{ {
compiled_resource result = overlay_element::get_compiled(); compiled_resource result = overlay_element::get_compiled();
const f32 global_y_offset = (f32)-scroll_offset_value; const f32 global_y_offset = static_cast<f32>(-scroll_offset_value);
for (auto &item : m_items) for (auto &item : m_items)
{ {
const s32 item_y_limit = (s32)(item->y + item->h) - scroll_offset_value - y; const s32 item_y_limit = s32{item->y} + item->h - scroll_offset_value - y;
const s32 item_y_base = (s32)item->y - scroll_offset_value - y; const s32 item_y_base = s32{item->y} - scroll_offset_value - y;
if (item_y_limit < 0 || item_y_base > h) if (item_y_limit < 0 || item_y_base > h)
{ {
@ -892,7 +892,7 @@ namespace rsx
else if (item_y_limit > h || item_y_base < 0) else if (item_y_limit > h || item_y_base < 0)
{ {
// Partial render // Partial render
areaf clip_rect = { (f32)x, (f32)y, (f32)(x + w), (f32)(y + h) }; areaf clip_rect = areai{ x, y, (x + w), (y + h) };
result.add(item->get_compiled(), 0.f, global_y_offset, clip_rect); result.add(item->get_compiled(), 0.f, global_y_offset, clip_rect);
} }
else else
@ -951,12 +951,12 @@ namespace rsx
if (!is_compiled) if (!is_compiled)
{ {
compiled_resource result = overlay_element::get_compiled(); compiled_resource result = overlay_element::get_compiled();
const f32 global_x_offset = (f32)-scroll_offset_value; const f32 global_x_offset = static_cast<f32>(-scroll_offset_value);
for (auto &item : m_items) for (auto &item : m_items)
{ {
const s32 item_x_limit = (s32)(item->x + item->w) - scroll_offset_value - w; const s32 item_x_limit = s32{item->x} + item->w - scroll_offset_value - w;
const s32 item_x_base = (s32)item->x - scroll_offset_value - w; const s32 item_x_base = s32{item->x} - scroll_offset_value - w;
if (item_x_limit < 0 || item_x_base > h) if (item_x_limit < 0 || item_x_base > h)
{ {
@ -966,7 +966,7 @@ namespace rsx
else if (item_x_limit > h || item_x_base < 0) else if (item_x_limit > h || item_x_base < 0)
{ {
// Partial render // Partial render
areaf clip_rect = { (f32)x, (f32)y, (f32)(x + w), (f32)(y + h) }; areaf clip_rect = areai{ x, y, (x + w), (y + h) };
result.add(item->get_compiled(), global_x_offset, 0.f, clip_rect); result.add(item->get_compiled(), global_x_offset, 0.f, clip_rect);
} }
else else

View File

@ -246,18 +246,18 @@ struct RSXFragmentProgram
rsx::texture_dimension_extended get_texture_dimension(u8 id) const rsx::texture_dimension_extended get_texture_dimension(u8 id) const
{ {
return (rsx::texture_dimension_extended)((texture_dimensions >> (id * 2)) & 0x3); return rsx::texture_dimension_extended{static_cast<u8>((texture_dimensions >> (id * 2)) & 0x3)};
} }
bool texcoord_is_2d(u8 index) const bool texcoord_is_2d(u8 index) const
{ {
return bool(texcoord_control_mask & (1u << index)); return !!(texcoord_control_mask & (1u << index));
} }
bool texcoord_is_point_coord(u8 index) const bool texcoord_is_point_coord(u8 index) const
{ {
index += 16; index += 16;
return bool(texcoord_control_mask & (1u << index)); return !!(texcoord_control_mask & (1u << index));
} }
RSXFragmentProgram() RSXFragmentProgram()

View File

@ -245,6 +245,6 @@ struct RSXVertexProgram
rsx::texture_dimension_extended get_texture_dimension(u8 id) const rsx::texture_dimension_extended get_texture_dimension(u8 id) const
{ {
return (rsx::texture_dimension_extended)((texture_dimensions >> (id * 2)) & 0x3); return rsx::texture_dimension_extended{static_cast<u8>((texture_dimensions >> (id * 2)) & 0x3)};
} }
}; };

View File

@ -564,7 +564,7 @@ namespace rsx
entries.push_back(tmp); entries.push_back(tmp);
} }
if ((entry_count = (u32)entries.size()) <= 2) if ((entry_count = ::size32(entries)) <= 2)
return; return;
root.rewind(); root.rewind();
@ -611,7 +611,7 @@ namespace rsx
} }
f.read<u8>(bytes, f.size()); f.read<u8>(bytes, f.size());
auto entry = unpack(*(pipeline_data*)bytes.data()); auto entry = unpack(*reinterpret_cast<pipeline_data*>(bytes.data()));
m_storage.preload_programs(std::get<1>(entry), std::get<2>(entry)); m_storage.preload_programs(std::get<1>(entry), std::get<2>(entry));
unpacked.push_back(entry); unpacked.push_back(entry);
@ -780,7 +780,7 @@ namespace rsx
RSXFragmentProgram fp = {}; RSXFragmentProgram fp = {};
fragment_program_data[program_hash] = data; fragment_program_data[program_hash] = data;
fp.addr = fragment_program_data[program_hash].data(); fp.addr = fragment_program_data[program_hash].data();
fp.ucode_length = (u32)data.size(); fp.ucode_length = ::size32(data);
return fp; return fp;
} }
@ -849,7 +849,7 @@ namespace rsx
{ {
for (auto &address : vp.jump_table) for (auto &address : vp.jump_table)
{ {
data_block.vp_jump_table[index++] = (u16)address; data_block.vp_jump_table[index++] = static_cast<u16>(address);
} }
} }
else else

View File

@ -286,7 +286,7 @@ namespace rsx
return 1u; return 1u;
} }
u32 count = (u32)draw_command_ranges.size(); u32 count = ::size32(draw_command_ranges);
if (draw_command_ranges.back().count == 0) if (draw_command_ranges.back().count == 0)
{ {
// Dangling barrier // Dangling barrier
@ -400,7 +400,7 @@ namespace rsx
const u32 count = barrier.address - previous_barrier; const u32 count = barrier.address - previous_barrier;
ret.push_back({ 0, vertex_counter, count }); ret.push_back({ 0, vertex_counter, count });
previous_barrier = (u32)barrier.address; previous_barrier = barrier.address;
vertex_counter += count; vertex_counter += count;
} }
@ -687,7 +687,7 @@ namespace rsx
bool restart_index_enabled() const bool restart_index_enabled() const
{ {
if (!restart_index_enabled_raw()) if (!restart_index_enabled_raw())
{ {
return false; return false;

View File

@ -291,7 +291,7 @@ namespace rsx
{ {
for (u32 i = 0; i < size; i++) for (u32 i = 0; i < size; i++)
{ {
*((Td*)dst + i) = *((Ts*)src - i); *(static_cast<Td*>(dst) + i) = *(static_cast<Ts*>(src) - i);
} }
} }
@ -463,14 +463,14 @@ namespace rsx
* TODO: Variable src/dst and optional se conversion * TODO: Variable src/dst and optional se conversion
*/ */
template <typename T> template <typename T>
void shuffle_texel_data_wzyx(void *data, u16 row_pitch_in_bytes, u16 row_length_in_texels, u16 num_rows) void shuffle_texel_data_wzyx(void* data, u16 row_pitch_in_bytes, u16 row_length_in_texels, u16 num_rows)
{ {
char *raw_src = (char*)data; char* raw_src = static_cast<char*>(data);
T tmp[4]; T tmp[4];
for (u16 n = 0; n < num_rows; ++n) for (u16 n = 0; n < num_rows; ++n)
{ {
T* src = (T*)raw_src; T* src = reinterpret_cast<T*>(raw_src);
raw_src += row_pitch_in_bytes; raw_src += row_pitch_in_bytes;
for (u16 m = 0; m < row_length_in_texels; ++m) for (u16 m = 0; m < row_length_in_texels; ++m)
@ -511,7 +511,7 @@ namespace rsx
else else
width = parent_width; width = parent_width;
x = (T)0; x = static_cast<T>(0);
} }
else else
{ {
@ -531,7 +531,7 @@ namespace rsx
else else
height = parent_height; height = parent_height;
y = (T)0; y = static_cast<T>(0);
} }
else else
{ {
@ -581,7 +581,7 @@ namespace rsx
static inline const f32 get_resolution_scale() static inline const f32 get_resolution_scale()
{ {
return g_cfg.video.strict_rendering_mode? 1.f : ((f32)g_cfg.video.resolution_scale_percent / 100.f); return g_cfg.video.strict_rendering_mode? 1.f : (g_cfg.video.resolution_scale_percent / 100.f);
} }
static inline const int get_resolution_scale_percent() static inline const int get_resolution_scale_percent()
@ -598,9 +598,9 @@ namespace rsx
return value; return value;
else if (clamp) else if (clamp)
return (u16)std::max((get_resolution_scale_percent() * value) / 100, 1); return static_cast<u16>(std::max((get_resolution_scale_percent() * value) / 100, 1));
else else
return (get_resolution_scale_percent() * value) / 100; return static_cast<u16>((get_resolution_scale_percent() * value) / 100);
} }
static inline const u16 apply_inverse_resolution_scale(u16 value, bool clamp) static inline const u16 apply_inverse_resolution_scale(u16 value, bool clamp)
@ -608,9 +608,9 @@ namespace rsx
u16 result = value; u16 result = value;
if (clamp) if (clamp)
result = (u16)std::max((value * 100) / get_resolution_scale_percent(), 1); result = static_cast<u16>(std::max((value * 100) / get_resolution_scale_percent(), 1));
else else
result = (value * 100) / get_resolution_scale_percent(); result = static_cast<u16>((value * 100) / get_resolution_scale_percent());
if (result <= g_cfg.video.min_scalable_dimension) if (result <= g_cfg.video.min_scalable_dimension)
return value; return value;
@ -721,14 +721,14 @@ namespace rsx
// before actually attempting to translate to the internal address. Seen happening heavily in R&C games // before actually attempting to translate to the internal address. Seen happening heavily in R&C games
static inline u32 get_vertex_offset_from_base(u32 vert_data_base_offset, u32 vert_base_offset) static inline u32 get_vertex_offset_from_base(u32 vert_data_base_offset, u32 vert_base_offset)
{ {
return ((u64)vert_data_base_offset + vert_base_offset) & 0xFFFFFFF; return (vert_data_base_offset + vert_base_offset) & 0xFFFFFFF;
} }
// Similar to vertex_offset_base calculation, the rsx internally adds and masks index // Similar to vertex_offset_base calculation, the rsx internally adds and masks index
// before using // before using
static inline u32 get_index_from_base(u32 index, u32 index_base) static inline u32 get_index_from_base(u32 index, u32 index_base)
{ {
return ((u64)index + index_base) & 0x000FFFFF; return (index + index_base) & 0x000FFFFF;
} }
// Convert color write mask for G8B8 to R8G8 // Convert color write mask for G8B8 to R8G8
@ -912,7 +912,7 @@ namespace rsx
_size = other._size; _size = other._size;
const auto size_bytes = sizeof(Ty) * _capacity; const auto size_bytes = sizeof(Ty) * _capacity;
_data = (Ty*)malloc(size_bytes); _data = static_cast<Ty*>(malloc(size_bytes));
std::memcpy(_data, other._data, size_bytes); std::memcpy(_data, other._data, size_bytes);
} }
@ -943,15 +943,7 @@ namespace rsx
if (_capacity >= size) if (_capacity >= size)
return; return;
if (_data) verify("realloc() failed!" HERE), _data = static_cast<Ty*>(std::realloc(_data, sizeof(Ty) * size));
{
verify("realloc() failed!" HERE), _data = (Ty*)realloc(_data, sizeof(Ty) * size);
}
else
{
verify("malloc() failed!" HERE), _data = (Ty*)malloc(sizeof(Ty) * size);
}
_capacity = size; _capacity = size;
} }

View File

@ -91,7 +91,7 @@ struct push_buffer_vertex_info
case vertex_base_type::s32k: case vertex_base_type::s32k:
return size / 2; return size / 2;
default: default:
fmt::throw_exception("Unsupported vertex base type %d", (u8)type); fmt::throw_exception("Unsupported vertex base type %d", static_cast<u8>(type));
} }
} }
@ -112,8 +112,8 @@ struct push_buffer_vertex_info
attribute_mask |= element_mask; attribute_mask |= element_mask;
void* dst = data.data() + ((vertex_count - 1) * vertex_size) + sub_index; u32* dst = data.data() + ((vertex_count - 1) * vertex_size) + sub_index;
*(u32*)dst = arg; *dst = arg;
} }
}; };

View File

@ -13,6 +13,7 @@
#pragma GCC diagnostic push #pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wall" #pragma GCC diagnostic ignored "-Wall"
#pragma GCC diagnostic ignored "-Wextra" #pragma GCC diagnostic ignored "-Wextra"
#pragma GCC diagnostic ignored "-Wold-style-cast"
#include <stb_image.h> #include <stb_image.h>
#pragma GCC diagnostic pop #pragma GCC diagnostic pop

View File

@ -365,7 +365,7 @@ struct atomic_storage<T, 2> : atomic_storage<T, 0>
static inline bool bts(T& dest, uint bit) static inline bool bts(T& dest, uint bit)
{ {
bool result; bool result;
ushort _bit = (ushort)bit; ushort _bit = static_cast<ushort>(bit);
__asm__("lock btsw %2, %0\n" "setc %1" : "+m" (dest), "=r" (result) : "Ir" (_bit) : "cc"); __asm__("lock btsw %2, %0\n" "setc %1" : "+m" (dest), "=r" (result) : "Ir" (_bit) : "cc");
return result; return result;
} }
@ -373,7 +373,7 @@ struct atomic_storage<T, 2> : atomic_storage<T, 0>
static inline bool btr(T& dest, uint bit) static inline bool btr(T& dest, uint bit)
{ {
bool result; bool result;
ushort _bit = (ushort)bit; ushort _bit = static_cast<ushort>(bit);
__asm__("lock btrw %2, %0\n" "setc %1" : "+m" (dest), "=r" (result) : "Ir" (_bit) : "cc"); __asm__("lock btrw %2, %0\n" "setc %1" : "+m" (dest), "=r" (result) : "Ir" (_bit) : "cc");
return result; return result;
} }
@ -381,7 +381,7 @@ struct atomic_storage<T, 2> : atomic_storage<T, 0>
static inline bool btc(T& dest, uint bit) static inline bool btc(T& dest, uint bit)
{ {
bool result; bool result;
ushort _bit = (ushort)bit; ushort _bit = static_cast<ushort>(bit);
__asm__("lock btcw %2, %0\n" "setc %1" : "+m" (dest), "=r" (result) : "Ir" (_bit) : "cc"); __asm__("lock btcw %2, %0\n" "setc %1" : "+m" (dest), "=r" (result) : "Ir" (_bit) : "cc");
return result; return result;
} }