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