@ -20,6 +20,7 @@
# include "common/logging/log.h"
# include "common/mem_arena.h"
# include "common/memory_util.h"
# include "common/platform.h"
# include "common/string_util.h"
# ifndef _WIN32
@ -198,7 +199,7 @@ void MemArena::ReleaseView(void* view, size_t size)
u8 * MemArena : : Find4GBBase ( )
{
# if def _M_X 64
# if EMU_ARCH_BITS == 64
# ifdef _WIN32
// 64 bit
u8 * base = ( u8 * ) VirtualAlloc ( 0 , 0xE1000000 , MEM_RESERVE , PAGE_READWRITE ) ;
@ -269,7 +270,7 @@ static bool Memory_TryBase(u8 *base, const MemoryView *views, int num_views, u32
if ( ! * view . out_ptr_low )
goto bail ;
}
# if def _M_X 64
# if EMU_ARCH_BITS == 64
* view . out_ptr = ( u8 * ) arena - > CreateView (
position , view . size , base + view . virtual_address ) ;
# else
@ -305,7 +306,7 @@ bail:
}
if ( * views [ j ] . out_ptr )
{
# if def _M_X 64
# if EMU_ARCH_BITS == 64
arena - > ReleaseView ( * views [ j ] . out_ptr , views [ j ] . size ) ;
# else
if ( ! ( views [ j ] . flags & MV_MIRROR_PREVIOUS ) )
@ -336,7 +337,7 @@ u8 *MemoryMap_Setup(const MemoryView *views, int num_views, u32 flags, MemArena
arena - > GrabLowMemSpace ( total_mem ) ;
// Now, create views in high memory where there's plenty of space.
# if def _M_X 64
# if EMU_ARCH_BITS == 64
u8 * base = MemArena : : Find4GBBase ( ) ;
// This really shouldn't fail - in 64-bit, there will always be enough
// address space.