Clean up memory access handlers, reduce template specializations

This commit is contained in:
Connor McLaughlin
2019-09-25 00:36:24 +10:00
parent 4aca52cdf4
commit 9359d0778e
7 changed files with 260 additions and 165 deletions

View File

@ -41,6 +41,7 @@ public:
// Sets the PC and flushes the pipeline.
void SetPC(u32 new_pc);
// Memory reads variants which do not raise exceptions.
bool SafeReadMemoryByte(VirtualMemoryAddress addr, u8* value);
bool SafeReadMemoryHalfWord(VirtualMemoryAddress addr, u16* value);
bool SafeReadMemoryWord(VirtualMemoryAddress addr, u32* value);
@ -53,7 +54,7 @@ public:
void ClearExternalInterrupt(u8 bit);
private:
template<MemoryAccessType type, MemoryAccessSize size, bool is_instruction_fetch, bool raise_exceptions>
template<MemoryAccessType type, MemoryAccessSize size>
bool DoMemoryAccess(VirtualMemoryAddress address, u32& value);
template<MemoryAccessType type, MemoryAccessSize size>