diff --git a/src/cpu/core_dyn_x86/cache.h b/src/cpu/core_dyn_x86/cache.h index 632ba076..97b5d261 100644 --- a/src/cpu/core_dyn_x86/cache.h +++ b/src/cpu/core_dyn_x86/cache.h @@ -151,7 +151,7 @@ public: } memset(invalidation_map,0,4096); } - (*(Bit16u*)&invalidation_map[addr])+=0x101; + host_addw(invalidation_map + addr, 0x101); InvalidateRange(addr,addr+1); } void writed(PhysPt addr,Bitu val){ @@ -176,7 +176,7 @@ public: } memset(invalidation_map,0,4096); } - (*(Bit32u*)&invalidation_map[addr])+=0x1010101; + host_addd(invalidation_map + addr, 0x1010101); InvalidateRange(addr,addr+3); } bool writeb_checked(PhysPt addr,Bitu val) { @@ -230,7 +230,7 @@ public: } memset(invalidation_map,0,4096); } - (*(Bit16u*)&invalidation_map[addr])+=0x101; + host_addw(invalidation_map + addr, 0x101); if (InvalidateRange(addr,addr+1)) { cpu.exception.which=SMC_CURRENT_BLOCK; return true; @@ -261,7 +261,7 @@ public: } memset(invalidation_map,0,4096); } - (*(Bit32u*)&invalidation_map[addr])+=0x1010101; + host_addd(invalidation_map + addr, 0x1010101); if (InvalidateRange(addr,addr+3)) { cpu.exception.which=SMC_CURRENT_BLOCK; return true; diff --git a/src/cpu/core_dynrec/cache.h b/src/cpu/core_dynrec/cache.h index 5c6b84c4..d9321f0d 100644 --- a/src/cpu/core_dynrec/cache.h +++ b/src/cpu/core_dynrec/cache.h @@ -171,12 +171,7 @@ public: invalidation_map=(Bit8u*)malloc(4096); memset(invalidation_map,0,4096); } -#if defined(WORDS_BIGENDIAN) || !defined(C_UNALIGNED_MEMORY) - host_writew(&invalidation_map[addr], - host_readw(&invalidation_map[addr])+0x101); -#else - (*(Bit16u*)&invalidation_map[addr])+=0x101; -#endif + host_addw(invalidation_map + addr, 0x101); InvalidateRange(addr,addr+1); } void writed(PhysPt addr,Bitu val){ @@ -193,12 +188,7 @@ public: invalidation_map=(Bit8u*)malloc(4096); memset(invalidation_map,0,4096); } -#if defined(WORDS_BIGENDIAN) || !defined(C_UNALIGNED_MEMORY) - host_writed(&invalidation_map[addr], - host_readd(&invalidation_map[addr])+0x1010101); -#else - (*(Bit32u*)&invalidation_map[addr])+=0x1010101; -#endif + host_addd(invalidation_map + addr, 0x1010101); InvalidateRange(addr,addr+3); } bool writeb_checked(PhysPt addr,Bitu val) { @@ -240,12 +230,7 @@ public: invalidation_map=(Bit8u*)malloc(4096); memset(invalidation_map,0,4096); } -#if defined(WORDS_BIGENDIAN) || !defined(C_UNALIGNED_MEMORY) - host_writew(&invalidation_map[addr], - host_readw(&invalidation_map[addr])+0x101); -#else - (*(Bit16u*)&invalidation_map[addr])+=0x101; -#endif + host_addw(invalidation_map + addr, 0x101); if (InvalidateRange(addr,addr+1)) { cpu.exception.which=SMC_CURRENT_BLOCK; return true; @@ -269,12 +254,7 @@ public: invalidation_map=(Bit8u*)malloc(4096); memset(invalidation_map,0,4096); } -#if defined(WORDS_BIGENDIAN) || !defined(C_UNALIGNED_MEMORY) - host_writed(&invalidation_map[addr], - host_readd(&invalidation_map[addr])+0x1010101); -#else - (*(Bit32u*)&invalidation_map[addr])+=0x1010101; -#endif + host_addd(invalidation_map + addr, 0x1010101); if (InvalidateRange(addr,addr+3)) { cpu.exception.which=SMC_CURRENT_BLOCK; return true;