PowerPC: Add HW_PAGE_MASK constant
This commit is contained in:
parent
ed40b43960
commit
b6b7030482
|
@ -173,8 +173,8 @@ static void GenerateDSIException(u32 effective_address, bool write);
|
||||||
template <XCheckTLBFlag flag, typename T, bool never_translate = false>
|
template <XCheckTLBFlag flag, typename T, bool never_translate = false>
|
||||||
static T ReadFromHardware(u32 em_address)
|
static T ReadFromHardware(u32 em_address)
|
||||||
{
|
{
|
||||||
const u32 em_address_start_page = em_address & ~(HW_PAGE_SIZE - 1);
|
const u32 em_address_start_page = em_address & ~HW_PAGE_MASK;
|
||||||
const u32 em_address_end_page = (em_address + sizeof(T) - 1) & ~(HW_PAGE_SIZE - 1);
|
const u32 em_address_end_page = (em_address + sizeof(T) - 1) & ~HW_PAGE_MASK;
|
||||||
if (em_address_start_page != em_address_end_page)
|
if (em_address_start_page != em_address_end_page)
|
||||||
{
|
{
|
||||||
// This could be unaligned down to the byte level... hopefully this is rare, so doing it this
|
// This could be unaligned down to the byte level... hopefully this is rare, so doing it this
|
||||||
|
@ -252,8 +252,8 @@ static void WriteToHardware(u32 em_address, const u32 data, const u32 size)
|
||||||
{
|
{
|
||||||
DEBUG_ASSERT(size <= 4);
|
DEBUG_ASSERT(size <= 4);
|
||||||
|
|
||||||
const u32 em_address_start_page = em_address & ~(HW_PAGE_SIZE - 1);
|
const u32 em_address_start_page = em_address & ~HW_PAGE_MASK;
|
||||||
const u32 em_address_end_page = (em_address + size - 1) & ~(HW_PAGE_SIZE - 1);
|
const u32 em_address_end_page = (em_address + size - 1) & ~HW_PAGE_MASK;
|
||||||
if (em_address_start_page != em_address_end_page)
|
if (em_address_start_page != em_address_end_page)
|
||||||
{
|
{
|
||||||
// The write crosses a page boundary. Break it up into two writes.
|
// The write crosses a page boundary. Break it up into two writes.
|
||||||
|
|
|
@ -215,6 +215,7 @@ inline bool TranslateBatAddess(const BatTable& bat_table, u32* address, bool* wi
|
||||||
}
|
}
|
||||||
|
|
||||||
constexpr size_t HW_PAGE_SIZE = 4096;
|
constexpr size_t HW_PAGE_SIZE = 4096;
|
||||||
|
constexpr size_t HW_PAGE_MASK = HW_PAGE_SIZE - 1;
|
||||||
constexpr u32 HW_PAGE_INDEX_SHIFT = 12;
|
constexpr u32 HW_PAGE_INDEX_SHIFT = 12;
|
||||||
constexpr u32 HW_PAGE_INDEX_MASK = 0x3f;
|
constexpr u32 HW_PAGE_INDEX_MASK = 0x3f;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue