mirror of
https://github.com/RPCSX/rpcsx.git
synced 2026-04-04 14:08:37 +00:00
Some warnings fixed, some code removed
This commit is contained in:
parent
8dfe7138df
commit
3269c88d02
21 changed files with 166 additions and 400 deletions
|
|
@ -2,6 +2,7 @@
|
|||
#include "Utilities/Log.h"
|
||||
#include "Emu/System.h"
|
||||
#include "Memory.h"
|
||||
#include "Emu/Cell/RawSPUThread.h"
|
||||
|
||||
#ifndef _WIN32
|
||||
#include <sys/mman.h>
|
||||
|
|
@ -191,7 +192,7 @@ void MemoryBase::WriteMMIO32(u32 addr, const u32 data)
|
|||
std::lock_guard<std::recursive_mutex> lock(m_mutex);
|
||||
|
||||
if (RawSPUMem[(addr - RAW_SPU_BASE_ADDR) / RAW_SPU_OFFSET] &&
|
||||
RawSPUMem[(addr - RAW_SPU_BASE_ADDR) / RAW_SPU_OFFSET]->Write32(addr, data))
|
||||
((RawSPUThread*)RawSPUMem[(addr - RAW_SPU_BASE_ADDR) / RAW_SPU_OFFSET])->Write32(addr, data))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
|
@ -207,7 +208,7 @@ u32 MemoryBase::ReadMMIO32(u32 addr)
|
|||
std::lock_guard<std::recursive_mutex> lock(m_mutex);
|
||||
|
||||
if (RawSPUMem[(addr - RAW_SPU_BASE_ADDR) / RAW_SPU_OFFSET] &&
|
||||
RawSPUMem[(addr - RAW_SPU_BASE_ADDR) / RAW_SPU_OFFSET]->Read32(addr, &res))
|
||||
((RawSPUThread*)RawSPUMem[(addr - RAW_SPU_BASE_ADDR) / RAW_SPU_OFFSET])->Read32(addr, &res))
|
||||
{
|
||||
return res;
|
||||
}
|
||||
|
|
@ -365,218 +366,6 @@ bool MemoryBlock::IsMyAddress(const u64 addr)
|
|||
return mem && addr >= GetStartAddr() && addr < GetEndAddr();
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
__forceinline const T MemoryBlock::FastRead(const u64 addr) const
|
||||
{
|
||||
volatile const T data = *(const T *)GetMem(addr);
|
||||
return re(data);
|
||||
}
|
||||
|
||||
template <>
|
||||
__forceinline const u128 MemoryBlock::FastRead<u128>(const u64 addr) const
|
||||
{
|
||||
volatile const u128 data = *(const u128 *)GetMem(addr);
|
||||
u128 ret;
|
||||
ret.lo = re(data.hi);
|
||||
ret.hi = re(data.lo);
|
||||
return ret;
|
||||
}
|
||||
|
||||
bool MemoryBlock::Read8(const u64 addr, u8* value)
|
||||
{
|
||||
if(!IsMyAddress(addr))
|
||||
{
|
||||
*value = 0;
|
||||
return false;
|
||||
}
|
||||
|
||||
*value = FastRead<u8>(FixAddr(addr));
|
||||
return true;
|
||||
}
|
||||
|
||||
bool MemoryBlock::Read16(const u64 addr, u16* value)
|
||||
{
|
||||
if(!IsMyAddress(addr))
|
||||
{
|
||||
*value = 0;
|
||||
return false;
|
||||
}
|
||||
|
||||
*value = FastRead<u16>(FixAddr(addr));
|
||||
return true;
|
||||
}
|
||||
|
||||
bool MemoryBlock::Read32(const u64 addr, u32* value)
|
||||
{
|
||||
if(!IsMyAddress(addr))
|
||||
{
|
||||
*value = 0;
|
||||
return false;
|
||||
}
|
||||
|
||||
*value = FastRead<u32>(FixAddr(addr));
|
||||
return true;
|
||||
}
|
||||
|
||||
bool MemoryBlock::Read64(const u64 addr, u64* value)
|
||||
{
|
||||
if(!IsMyAddress(addr))
|
||||
{
|
||||
*value = 0;
|
||||
return false;
|
||||
}
|
||||
|
||||
*value = FastRead<u64>(FixAddr(addr));
|
||||
return true;
|
||||
}
|
||||
|
||||
bool MemoryBlock::Read128(const u64 addr, u128* value)
|
||||
{
|
||||
if(!IsMyAddress(addr))
|
||||
{
|
||||
*value = u128::From32(0);
|
||||
return false;
|
||||
}
|
||||
|
||||
*value = FastRead<u128>(FixAddr(addr));
|
||||
return true;
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
__forceinline void MemoryBlock::FastWrite(const u64 addr, const T value)
|
||||
{
|
||||
*(T *)GetMem(addr) = re(value);
|
||||
}
|
||||
|
||||
template <>
|
||||
__forceinline void MemoryBlock::FastWrite<u128>(const u64 addr, const u128 value)
|
||||
{
|
||||
u128 res;
|
||||
res.lo = re(value.hi);
|
||||
res.hi = re(value.lo);
|
||||
*(u128*)GetMem(addr) = res;
|
||||
}
|
||||
|
||||
bool MemoryBlock::Write8(const u64 addr, const u8 value)
|
||||
{
|
||||
if(!IsMyAddress(addr) || IsLocked(addr)) return false;
|
||||
|
||||
FastWrite<u8>(FixAddr(addr), value);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool MemoryBlock::Write16(const u64 addr, const u16 value)
|
||||
{
|
||||
if(!IsMyAddress(addr) || IsLocked(addr)) return false;
|
||||
|
||||
FastWrite<u16>(FixAddr(addr), value);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool MemoryBlock::Write32(const u64 addr, const u32 value)
|
||||
{
|
||||
if(!IsMyAddress(addr) || IsLocked(addr)) return false;
|
||||
|
||||
FastWrite<u32>(FixAddr(addr), value);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool MemoryBlock::Write64(const u64 addr, const u64 value)
|
||||
{
|
||||
if(!IsMyAddress(addr) || IsLocked(addr)) return false;
|
||||
|
||||
FastWrite<u64>(FixAddr(addr), value);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool MemoryBlock::Write128(const u64 addr, const u128 value)
|
||||
{
|
||||
if(!IsMyAddress(addr) || IsLocked(addr)) return false;
|
||||
|
||||
FastWrite<u128>(FixAddr(addr), value);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool MemoryBlockLE::Read8(const u64 addr, u8* value)
|
||||
{
|
||||
if(!IsMyAddress(addr)) return false;
|
||||
|
||||
*value = *(u8*)GetMem(FixAddr(addr));
|
||||
return true;
|
||||
}
|
||||
|
||||
bool MemoryBlockLE::Read16(const u64 addr, u16* value)
|
||||
{
|
||||
if(!IsMyAddress(addr)) return false;
|
||||
|
||||
*value = *(u16*)GetMem(FixAddr(addr));
|
||||
return true;
|
||||
}
|
||||
|
||||
bool MemoryBlockLE::Read32(const u64 addr, u32* value)
|
||||
{
|
||||
if(!IsMyAddress(addr)) return false;
|
||||
|
||||
*value = *(u32*)GetMem(FixAddr(addr));
|
||||
return true;
|
||||
}
|
||||
|
||||
bool MemoryBlockLE::Read64(const u64 addr, u64* value)
|
||||
{
|
||||
if(!IsMyAddress(addr)) return false;
|
||||
|
||||
*value = *(u64*)GetMem(FixAddr(addr));
|
||||
return true;
|
||||
}
|
||||
|
||||
bool MemoryBlockLE::Read128(const u64 addr, u128* value)
|
||||
{
|
||||
if(!IsMyAddress(addr)) return false;
|
||||
|
||||
*value = *(u128*)GetMem(FixAddr(addr));
|
||||
return true;
|
||||
}
|
||||
|
||||
bool MemoryBlockLE::Write8(const u64 addr, const u8 value)
|
||||
{
|
||||
if(!IsMyAddress(addr)) return false;
|
||||
|
||||
*(u8*)GetMem(FixAddr(addr)) = value;
|
||||
return true;
|
||||
}
|
||||
|
||||
bool MemoryBlockLE::Write16(const u64 addr, const u16 value)
|
||||
{
|
||||
if(!IsMyAddress(addr)) return false;
|
||||
|
||||
*(u16*)GetMem(FixAddr(addr)) = value;
|
||||
return true;
|
||||
}
|
||||
|
||||
bool MemoryBlockLE::Write32(const u64 addr, const u32 value)
|
||||
{
|
||||
if(!IsMyAddress(addr)) return false;
|
||||
|
||||
*(u32*)GetMem(FixAddr(addr)) = value;
|
||||
return true;
|
||||
}
|
||||
|
||||
bool MemoryBlockLE::Write64(const u64 addr, const u64 value)
|
||||
{
|
||||
if(!IsMyAddress(addr)) return false;
|
||||
|
||||
*(u64*)GetMem(FixAddr(addr)) = value;
|
||||
return true;
|
||||
}
|
||||
|
||||
bool MemoryBlockLE::Write128(const u64 addr, const u128 value)
|
||||
{
|
||||
if(!IsMyAddress(addr)) return false;
|
||||
|
||||
*(u128*)GetMem(FixAddr(addr)) = value;
|
||||
return true;
|
||||
}
|
||||
|
||||
VirtualMemoryBlock::VirtualMemoryBlock() : MemoryBlock(), m_reserve_size(0)
|
||||
{
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue