diff --git a/src/core/virtual_memory.cpp b/src/core/virtual_memory.cpp index 3c9c2e200..8907622a4 100644 --- a/src/core/virtual_memory.cpp +++ b/src/core/virtual_memory.cpp @@ -170,7 +170,8 @@ u64 memory_alloc_aligned(u64 address, u64 size, MemoryMode mode, u64 alignment) } return ptr; #else - void* hint_address = reinterpret_cast(AlignUp(address, alignment)); + void* hint_address = address == 0 ? reinterpret_cast(USER_MIN) + : reinterpret_cast(AlignUp(address, alignment)); void* ptr = mmap(hint_address, size, convertMemoryMode(mode), MAP_ANON | MAP_PRIVATE, -1, 0); ASSERT(ptr != MAP_FAILED); return reinterpret_cast(ptr);