diff --git a/common/BitUtils.h b/common/BitUtils.h index 635763660e..bae69f450a 100644 --- a/common/BitUtils.h +++ b/common/BitUtils.h @@ -78,6 +78,7 @@ namespace Common template static constexpr T PageAlign(T size) { + static_assert(std::has_single_bit(__pagesize), "Page size is a power of 2"); return Common::AlignUpPow2(size, __pagesize); } diff --git a/common/Linux/LnxHostSys.cpp b/common/Linux/LnxHostSys.cpp index 870963f8cd..5e64d4d9d4 100644 --- a/common/Linux/LnxHostSys.cpp +++ b/common/Linux/LnxHostSys.cpp @@ -108,7 +108,8 @@ static void SysPageFaultSignalFilter(int signal, siginfo_t* siginfo, void* ctx) void* const exception_pc = nullptr; #endif - const PageFaultInfo pfi{(uptr)exception_pc, (uptr)siginfo->si_addr & ~__pagemask}; + const PageFaultInfo pfi{ + reinterpret_cast(exception_pc), reinterpret_cast(siginfo->si_addr) & ~static_cast(__pagemask)}; s_in_exception_handler = true; diff --git a/common/Pcsx2Defs.h b/common/Pcsx2Defs.h index 214e01cd34..d11e2e001c 100644 --- a/common/Pcsx2Defs.h +++ b/common/Pcsx2Defs.h @@ -81,10 +81,9 @@ // Defines the memory page size for the target platform at compilation. All supported platforms // (which means Intel only right now) have a 4k granularity. -#define PCSX2_PAGESIZE 0x1000 -static constexpr int __pagesize = PCSX2_PAGESIZE; -static constexpr int __pageshift = 12; -static constexpr size_t __pagemask = PCSX2_PAGESIZE - 1; +static constexpr unsigned int __pagesize = 0x1000; +static constexpr unsigned int __pageshift = 12; +static constexpr unsigned int __pagemask = __pagesize - 1; // -------------------------------------------------------------------------------------- // Microsoft Visual Studio