From 639b91e4838d601659ec1cac44fce482790a414c Mon Sep 17 00:00:00 2001 From: patrickvl Date: Mon, 18 Dec 2017 14:12:24 +0100 Subject: [PATCH] X86 : Merged al mem reads into one EmuX86_Mem_Read --- src/CxbxKrnl/EmuX86.cpp | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/src/CxbxKrnl/EmuX86.cpp b/src/CxbxKrnl/EmuX86.cpp index 794c822e5..9d75fe5b8 100644 --- a/src/CxbxKrnl/EmuX86.cpp +++ b/src/CxbxKrnl/EmuX86.cpp @@ -113,19 +113,19 @@ void EmuX86_IOWrite(xbaddr addr, uint32_t value, int size) // to prevent recursive exceptions when accessing unallocated memory. // -uint32_t EmuX86_Mem_Read32(xbaddr addr) +uint32_t EmuX86_Mem_Read(xbaddr addr, int size) { - return *(uint32_t*)addr; -} - -uint16_t EmuX86_Mem_Read16(xbaddr addr) -{ - return *(uint16_t*)addr; -} - -uint8_t EmuX86_Mem_Read8(xbaddr addr) -{ - return *(uint8_t*)addr; + switch (size) { + case sizeof(uint32_t) : + return *(uint32_t*)addr; + case sizeof(uint16_t) : + return *(uint16_t*)addr; + case sizeof(uint8_t) : + return *(uint8_t*)addr; + default: + // UNREACHABLE(size); + return 0; + } } void EmuX86_Mem_Write32(xbaddr addr, uint32_t value) @@ -187,7 +187,7 @@ uint32_t EmuX86_Read32Aligned(xbaddr addr) value = 0; } else { // Outside EmuException, pass the memory-access through to normal memory : - value = EmuX86_Mem_Read32(addr); + value = EmuX86_Mem_Read(addr, sizeof(uint32_t)); } DbgPrintf("EmuX86_Read32Aligned(0x%08X) = 0x%08X\n", addr, value); @@ -232,7 +232,7 @@ uint16_t EmuX86_Read16(xbaddr addr) value = 0; } else { // Outside EmuException, pass the memory-access through to normal memory : - value = EmuX86_Mem_Read16(addr); + value = (uint16_t)EmuX86_Mem_Read(addr, sizeof(uint16_t)); } DbgPrintf("X86 : Read16(0x%.8X) = 0x%.4X\n", addr, value); @@ -263,7 +263,7 @@ uint8_t EmuX86_Read8(xbaddr addr) value = 0; } else { // Outside EmuException, pass the memory-access through to normal memory : - value = EmuX86_Mem_Read8(addr); + value = (uint8_t)EmuX86_Mem_Read(addr, sizeof(uint8_t)); } DbgPrintf("X86 : Read8(0x%.8X) = 0x%.2X\n", addr, value);