Micro-optimization: RDP access wrappers are now force inlined
This commit is contained in:
@@ -20,35 +20,35 @@ void RDP::Reset() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
void RDP::WriteRDRAM<u8>(const size_t idx, const u8 v) {
|
__attribute__((always_inline)) void RDP::WriteRDRAM<u8>(const size_t idx, const u8 v) {
|
||||||
if (const size_t real = BYTE_ADDRESS(idx); real < RDRAM_SIZE) [[likely]] {
|
if (const size_t real = BYTE_ADDRESS(idx); real < RDRAM_SIZE) [[likely]] {
|
||||||
rdram[real] = v;
|
rdram[real] = v;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
void RDP::WriteRDRAM<u16>(const size_t idx, const u16 v) {
|
__attribute__((always_inline)) void RDP::WriteRDRAM<u16>(const size_t idx, const u16 v) {
|
||||||
if (const size_t real = HALF_ADDRESS(idx); real < RDRAM_SIZE) [[likely]] {
|
if (const size_t real = HALF_ADDRESS(idx); real < RDRAM_SIZE) [[likely]] {
|
||||||
Util::WriteAccess<u16>(rdram, real, v);
|
Util::WriteAccess<u16>(rdram, real, v);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
void RDP::WriteRDRAM<u32>(const size_t idx, const u32 v) {
|
__attribute__((always_inline)) void RDP::WriteRDRAM<u32>(const size_t idx, const u32 v) {
|
||||||
if (idx < RDRAM_SIZE) [[likely]] {
|
if (idx < RDRAM_SIZE) [[likely]] {
|
||||||
Util::WriteAccess<u32>(rdram, idx, v);
|
Util::WriteAccess<u32>(rdram, idx, v);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
void RDP::WriteRDRAM<u64>(const size_t idx, const u64 v) {
|
__attribute__((always_inline)) void RDP::WriteRDRAM<u64>(const size_t idx, const u64 v) {
|
||||||
if (idx < RDRAM_SIZE) [[likely]] {
|
if (idx < RDRAM_SIZE) [[likely]] {
|
||||||
Util::WriteAccess<u64>(rdram, idx, v);
|
Util::WriteAccess<u64>(rdram, idx, v);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
u8 RDP::ReadRDRAM<u8>(const size_t idx) {
|
__attribute__((always_inline)) u8 RDP::ReadRDRAM<u8>(const size_t idx) {
|
||||||
if (const size_t real = BYTE_ADDRESS(idx); real < RDRAM_SIZE) [[likely]]
|
if (const size_t real = BYTE_ADDRESS(idx); real < RDRAM_SIZE) [[likely]]
|
||||||
return rdram[real];
|
return rdram[real];
|
||||||
|
|
||||||
@@ -56,7 +56,7 @@ u8 RDP::ReadRDRAM<u8>(const size_t idx) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
u16 RDP::ReadRDRAM<u16>(const size_t idx) {
|
__attribute__((always_inline)) u16 RDP::ReadRDRAM<u16>(const size_t idx) {
|
||||||
if (const size_t real = HALF_ADDRESS(idx); real < RDRAM_SIZE) [[likely]]
|
if (const size_t real = HALF_ADDRESS(idx); real < RDRAM_SIZE) [[likely]]
|
||||||
return Util::ReadAccess<u16>(rdram, real);
|
return Util::ReadAccess<u16>(rdram, real);
|
||||||
|
|
||||||
@@ -64,7 +64,7 @@ u16 RDP::ReadRDRAM<u16>(const size_t idx) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
u32 RDP::ReadRDRAM<u32>(const size_t idx) {
|
__attribute__((always_inline)) u32 RDP::ReadRDRAM<u32>(const size_t idx) {
|
||||||
if (idx < RDRAM_SIZE) [[likely]]
|
if (idx < RDRAM_SIZE) [[likely]]
|
||||||
return Util::ReadAccess<u32>(rdram, idx);
|
return Util::ReadAccess<u32>(rdram, idx);
|
||||||
|
|
||||||
@@ -72,7 +72,7 @@ u32 RDP::ReadRDRAM<u32>(const size_t idx) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
u64 RDP::ReadRDRAM<u64>(const size_t idx) {
|
__attribute__((always_inline)) u64 RDP::ReadRDRAM<u64>(const size_t idx) {
|
||||||
if (idx < RDRAM_SIZE) [[likely]]
|
if (idx < RDRAM_SIZE) [[likely]]
|
||||||
return Util::ReadAccess<u64>(rdram, idx);
|
return Util::ReadAccess<u64>(rdram, idx);
|
||||||
|
|
||||||
|
|||||||
@@ -82,9 +82,9 @@ struct RDP {
|
|||||||
}
|
}
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
void WriteRDRAM(size_t, T);
|
__attribute__((always_inline)) void WriteRDRAM(size_t, T);
|
||||||
template <typename T>
|
template <typename T>
|
||||||
T ReadRDRAM(size_t);
|
__attribute__((always_inline)) T ReadRDRAM(size_t);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
friend struct Mem;
|
friend struct Mem;
|
||||||
|
|||||||
Reference in New Issue
Block a user