diff --git a/Source/Core/Common/Src/MemArena.cpp b/Source/Core/Common/Src/MemArena.cpp index e6728a3ee0..d2edd76703 100644 --- a/Source/Core/Common/Src/MemArena.cpp +++ b/Source/Core/Common/Src/MemArena.cpp @@ -30,7 +30,7 @@ #if !defined(MAP_ANONYMOUS) && defined(MAP_ANON) #define MAP_ANONYMOUS MAP_ANON #endif - + const char* ram_temp_file = "/tmp/gc_mem.tmp"; @@ -106,18 +106,18 @@ void MemArena::ReleaseView(void* view, size_t size) } -u64 MemArena::Find4GBBase() +u8* MemArena::Find4GBBase() { #ifdef _M_X64 #ifdef _WIN32 // 64 bit u8* base = (u8*)VirtualAlloc(0, 0xE1000000, MEM_RESERVE, PAGE_READWRITE); VirtualFree(base, 0, MEM_RELEASE); - return((u64)base); + return base; #else // Very precarious - mmap cannot return an error when trying to map already used pages. // This makes the Windows approach above unusable on Linux, so we will simply pray... - return(0x2300000000ULL); + return reinterpret_cast(0x2300000000ULL); #endif #else @@ -127,12 +127,12 @@ u64 MemArena::Find4GBBase() u8* base = (u8*)VirtualAlloc(0, 0x31000000, MEM_RESERVE, PAGE_READWRITE); if (base) { VirtualFree(base, 0, MEM_RELEASE); - } - return((u64)base); -#else - void* base = mmap(0, 0x31000000, PROT_READ | PROT_WRITE, MAP_ANONYMOUS | MAP_SHARED, 0, 0); - munmap(base, 0x31000000); - return reinterpret_cast(base); -#endif + } + return base; +#else + void* base = mmap(0, 0x31000000, PROT_READ | PROT_WRITE, MAP_ANONYMOUS | MAP_SHARED, 0, 0); + munmap(base, 0x31000000); + return static_cast(base); +#endif #endif } diff --git a/Source/Core/Common/Src/MemArena.h b/Source/Core/Common/Src/MemArena.h index 5bd37f1c57..1d9cdf7cc6 100644 --- a/Source/Core/Common/Src/MemArena.h +++ b/Source/Core/Common/Src/MemArena.h @@ -41,7 +41,7 @@ class MemArena // This only finds 1 GB in 32-bit - static u64 Find4GBBase(); + static u8* Find4GBBase(); private: diff --git a/Source/Core/Core/Src/HW/Memmap.cpp b/Source/Core/Core/Src/HW/Memmap.cpp index 3c3ffa7419..7d14a37eca 100644 --- a/Source/Core/Core/Src/HW/Memmap.cpp +++ b/Source/Core/Core/Src/HW/Memmap.cpp @@ -449,7 +449,7 @@ bool Init() #ifdef _M_X64 //Then, in x64 mode where we have space, grab a 4GB virtual address space //TODO: grab 8GB and align, for easier debugging - base = (u8*)MemArena::Find4GBBase(); + base = MemArena::Find4GBBase(); //OK, we know where to find free space. Now grab it! //Physical should be unmapped when not in "real mode" @@ -478,7 +478,7 @@ bool Init() } #else // Do a poor mans version - just grab 1GB, possibly discontiguous, and use &0x3FFFFFFF as the mask whenever it is accessed. - base = (u8*)MemArena::Find4GBBase(); + base = MemArena::Find4GBBase(); if (!base) { PanicAlert("Failed to grab 1 GB of contiguous memory!\nDo you have an antivirus program or any other program\n" "that injects itself into every process, consuming address space?\nOr simply a bad graphics driver?\n\n"