diff options
Diffstat (limited to 'src/ARMJIT.cpp')
-rw-r--r-- | src/ARMJIT.cpp | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/src/ARMJIT.cpp b/src/ARMJIT.cpp index e8e6be0..aad14c0 100644 --- a/src/ARMJIT.cpp +++ b/src/ARMJIT.cpp @@ -109,11 +109,14 @@ void Init() { memset(&cache, 0, sizeof(BlockCache)); - for (int cpu = 0; cpu < 2; cpu++) - for (int i = 0; i < 0x4000; i++) - cache.AddrMapping[cpu][i] = JIT_MEM[cpu][i >> 9] == -1 ? NULL : - (CompiledBlock*)((u8*)&cache + JIT_MEM[cpu][i >> 9]) - + (((i << 14) & JIT_MASK[cpu][i >> 9]) >> 1); + for (int i = 0; i < 0x2000; i++) + cache.AddrMapping9[i] = JIT_MEM[0][i >> 8] == -1 ? NULL : + (CompiledBlock*)((u8*)&cache + JIT_MEM[0][i >> 8]) + + (((i << 15) & JIT_MASK[0][i >> 8]) >> 1); + for (int i = 0; i < 0x4000; i++) + cache.AddrMapping7[i] = JIT_MEM[1][i >> 9] == -1 ? NULL : + (CompiledBlock*)((u8*)&cache + JIT_MEM[1][i >> 9]) + + (((i << 14) & JIT_MASK[1][i >> 9]) >> 1); compiler = new Compiler(); } @@ -175,7 +178,10 @@ CompiledBlock CompileBlock(ARM* cpu) CompiledBlock block = compiler->CompileBlock(cpu, instrs, i); - InsertBlock(cpu->Num, blockAddr, block); + if (cpu->Num == 0) + InsertBlock<0>(blockAddr, block); + else + InsertBlock<1>(blockAddr, block); return block; } |