Reduce contiguous memory space requirement in 32-bit mode slightly. Could help some people who get the error message.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
parent
e0d8d0a001
commit
8248a8d137
|
@ -104,7 +104,8 @@ u64 MemArena::Find4GBBase()
|
|||
{
|
||||
#ifdef _M_X64
|
||||
#ifdef _WIN32
|
||||
u8* base = (u8*)VirtualAlloc(0, 0x100000000, MEM_RESERVE, PAGE_READWRITE);
|
||||
// The highest thing in any 1GB section of memory space is the locked cache. We only need to fit it.
|
||||
u8* base = (u8*)VirtualAlloc(0, 0xE1000000, MEM_RESERVE, PAGE_READWRITE);
|
||||
VirtualFree(base, 0, MEM_RELEASE);
|
||||
return((u64)base);
|
||||
|
||||
|
|
|
@ -470,7 +470,10 @@ bool Init()
|
|||
// Do a poor mans version - just grab 1GB, possibly discontiguous, and use &0x3FFFFFFF as the mask whenever it is accessed.
|
||||
base = (u8*)MemArena::Find4GBBase();
|
||||
if (!base) {
|
||||
PanicAlert("Failed to grab 1 GB of contiguous memory!");
|
||||
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"
|
||||
"Dolphin will handle this better in the future by falling back to slow memory emulation.\n"
|
||||
"For now, sorry, but it won't work. Try the 64-bit build if you can.");
|
||||
}
|
||||
position = 0;
|
||||
m_pPhysicalRAM = (u8*)g_arena.CreateViewAt(position, RAM_SIZE, base + (0x00000000 & MEMVIEW32_MASK));
|
||||
|
|
|
@ -569,6 +569,7 @@ namespace Jit64
|
|||
MOV(16, R(EAX), MComplex(RBX, gpr.R(inst.RA).GetSimpleReg(), 1, offset));
|
||||
MOV(32, M(&temp64), R(EAX));
|
||||
MOVD_xmm(XMM0, M(&temp64));
|
||||
// SSE4 optimization opportunity here.
|
||||
PXOR(XMM1, R(XMM1));
|
||||
PUNPCKLBW(XMM0, R(XMM1));
|
||||
PUNPCKLWD(XMM0, R(XMM1));
|
||||
|
|
Loading…
Reference in New Issue