parent
116d831cfd
commit
8a96dfce18
|
@ -80,7 +80,7 @@ ARM::~ARM()
|
||||||
ARMv5::ARMv5() : ARM(0)
|
ARMv5::ARMv5() : ARM(0)
|
||||||
{
|
{
|
||||||
#ifndef JIT_ENABLED
|
#ifndef JIT_ENABLED
|
||||||
DTCM = new u8[DTCMSize];
|
DTCM = new u8[DTCMPhysicalSize];
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -57,7 +57,7 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual void Execute() = 0;
|
virtual void Execute() = 0;
|
||||||
#ifdef ENABLE_JIT
|
#ifdef JIT_ENABLED
|
||||||
virtual void ExecuteJIT() = 0;
|
virtual void ExecuteJIT() = 0;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -21,9 +21,11 @@
|
||||||
#include "NDS.h"
|
#include "NDS.h"
|
||||||
#include "DSi.h"
|
#include "DSi.h"
|
||||||
#include "ARM.h"
|
#include "ARM.h"
|
||||||
|
|
||||||
|
#ifdef JIT_ENABLED
|
||||||
#include "ARMJIT.h"
|
#include "ARMJIT.h"
|
||||||
#include "ARMJIT_Memory.h"
|
#include "ARMJIT_Memory.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
// access timing for cached regions
|
// access timing for cached regions
|
||||||
// this would be an average between cache hits and cache misses
|
// this would be an average between cache hits and cache misses
|
||||||
|
@ -105,7 +107,7 @@ void ARMv5::UpdateDTCMSetting()
|
||||||
{
|
{
|
||||||
newDTCMBase = DTCMSetting & 0xFFFFF000;
|
newDTCMBase = DTCMSetting & 0xFFFFF000;
|
||||||
newDTCMSize = 0x200 << ((DTCMSetting >> 1) & 0x1F);
|
newDTCMSize = 0x200 << ((DTCMSetting >> 1) & 0x1F);
|
||||||
//printf("DTCM [%08X] enabled at %08X, size %X\n", DTCMSetting, DTCMBase, DTCMSize);
|
//printf("DTCM [%08X] enabled at %08X, size %X\n", DTCMSetting, newDTCMBase, newDTCMSize);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -115,7 +117,9 @@ void ARMv5::UpdateDTCMSetting()
|
||||||
}
|
}
|
||||||
if (newDTCMBase != DTCMBase || newDTCMSize != DTCMSize)
|
if (newDTCMBase != DTCMBase || newDTCMSize != DTCMSize)
|
||||||
{
|
{
|
||||||
|
#ifdef JIT_ENABLED
|
||||||
ARMJIT_Memory::RemapDTCM(newDTCMBase, newDTCMSize);
|
ARMJIT_Memory::RemapDTCM(newDTCMBase, newDTCMSize);
|
||||||
|
#endif
|
||||||
DTCMBase = newDTCMBase;
|
DTCMBase = newDTCMBase;
|
||||||
DTCMSize = newDTCMSize;
|
DTCMSize = newDTCMSize;
|
||||||
}
|
}
|
||||||
|
|
38
src/DSi.cpp
38
src/DSi.cpp
|
@ -540,7 +540,9 @@ void MapNWRAM_A(u32 num, u8 val)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef JIT_ENABLED
|
||||||
ARMJIT_Memory::RemapNWRAM(0);
|
ARMJIT_Memory::RemapNWRAM(0);
|
||||||
|
#endif
|
||||||
|
|
||||||
int mbkn = 0, mbks = 8*num;
|
int mbkn = 0, mbks = 8*num;
|
||||||
|
|
||||||
|
@ -573,7 +575,9 @@ void MapNWRAM_B(u32 num, u8 val)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef JIT_ENABLED
|
||||||
ARMJIT_Memory::RemapNWRAM(1);
|
ARMJIT_Memory::RemapNWRAM(1);
|
||||||
|
#endif
|
||||||
|
|
||||||
int mbkn = 1+(num>>2), mbks = 8*(num&3);
|
int mbkn = 1+(num>>2), mbks = 8*(num&3);
|
||||||
|
|
||||||
|
@ -610,7 +614,9 @@ void MapNWRAM_C(u32 num, u8 val)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef JIT_ENABLED
|
||||||
ARMJIT_Memory::RemapNWRAM(2);
|
ARMJIT_Memory::RemapNWRAM(2);
|
||||||
|
#endif
|
||||||
|
|
||||||
int mbkn = 3+(num>>2), mbks = 8*(num&3);
|
int mbkn = 3+(num>>2), mbks = 8*(num&3);
|
||||||
|
|
||||||
|
@ -644,7 +650,9 @@ void MapNWRAMRange(u32 cpu, u32 num, u32 val)
|
||||||
u32 oldval = MBK[cpu][5+num];
|
u32 oldval = MBK[cpu][5+num];
|
||||||
if (oldval == val) return;
|
if (oldval == val) return;
|
||||||
|
|
||||||
|
#ifdef JIT_ENABLED
|
||||||
ARMJIT_Memory::RemapNWRAM(num);
|
ARMJIT_Memory::RemapNWRAM(num);
|
||||||
|
#endif
|
||||||
|
|
||||||
MBK[cpu][5+num] = val;
|
MBK[cpu][5+num] = val;
|
||||||
|
|
||||||
|
@ -850,7 +858,9 @@ void ARM9Write8(u32 addr, u8 val)
|
||||||
if (ptr)
|
if (ptr)
|
||||||
{
|
{
|
||||||
*(u8*)&ptr[addr & 0xFFFF] = val;
|
*(u8*)&ptr[addr & 0xFFFF] = val;
|
||||||
|
#ifdef JIT_ENABLED
|
||||||
ARMJIT::CheckAndInvalidate<0, ARMJIT_Memory::memregion_NewSharedWRAM_A>(addr);
|
ARMJIT::CheckAndInvalidate<0, ARMJIT_Memory::memregion_NewSharedWRAM_A>(addr);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -860,7 +870,9 @@ void ARM9Write8(u32 addr, u8 val)
|
||||||
if (ptr)
|
if (ptr)
|
||||||
{
|
{
|
||||||
*(u8*)&ptr[addr & 0x7FFF] = val;
|
*(u8*)&ptr[addr & 0x7FFF] = val;
|
||||||
|
#ifdef JIT_ENABLED
|
||||||
ARMJIT::CheckAndInvalidate<0, ARMJIT_Memory::memregion_NewSharedWRAM_B>(addr);
|
ARMJIT::CheckAndInvalidate<0, ARMJIT_Memory::memregion_NewSharedWRAM_B>(addr);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -870,7 +882,9 @@ void ARM9Write8(u32 addr, u8 val)
|
||||||
if (ptr)
|
if (ptr)
|
||||||
{
|
{
|
||||||
*(u8*)&ptr[addr & 0x7FFF] = val;
|
*(u8*)&ptr[addr & 0x7FFF] = val;
|
||||||
|
#ifdef JIT_ENABLED
|
||||||
ARMJIT::CheckAndInvalidate<0, ARMJIT_Memory::memregion_NewSharedWRAM_C>(addr);
|
ARMJIT::CheckAndInvalidate<0, ARMJIT_Memory::memregion_NewSharedWRAM_C>(addr);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -895,7 +909,9 @@ void ARM9Write16(u32 addr, u16 val)
|
||||||
if (ptr)
|
if (ptr)
|
||||||
{
|
{
|
||||||
*(u16*)&ptr[addr & 0xFFFF] = val;
|
*(u16*)&ptr[addr & 0xFFFF] = val;
|
||||||
|
#ifdef JIT_ENABLED
|
||||||
ARMJIT::CheckAndInvalidate<0, ARMJIT_Memory::memregion_NewSharedWRAM_A>(addr);
|
ARMJIT::CheckAndInvalidate<0, ARMJIT_Memory::memregion_NewSharedWRAM_A>(addr);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -905,7 +921,9 @@ void ARM9Write16(u32 addr, u16 val)
|
||||||
if (ptr)
|
if (ptr)
|
||||||
{
|
{
|
||||||
*(u16*)&ptr[addr & 0x7FFF] = val;
|
*(u16*)&ptr[addr & 0x7FFF] = val;
|
||||||
|
#ifdef JIT_ENABLED
|
||||||
ARMJIT::CheckAndInvalidate<0, ARMJIT_Memory::memregion_NewSharedWRAM_B>(addr);
|
ARMJIT::CheckAndInvalidate<0, ARMJIT_Memory::memregion_NewSharedWRAM_B>(addr);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -915,7 +933,9 @@ void ARM9Write16(u32 addr, u16 val)
|
||||||
if (ptr)
|
if (ptr)
|
||||||
{
|
{
|
||||||
*(u16*)&ptr[addr & 0x7FFF] = val;
|
*(u16*)&ptr[addr & 0x7FFF] = val;
|
||||||
|
#ifdef JIT_ENABLED
|
||||||
ARMJIT::CheckAndInvalidate<0, ARMJIT_Memory::memregion_NewSharedWRAM_C>(addr);
|
ARMJIT::CheckAndInvalidate<0, ARMJIT_Memory::memregion_NewSharedWRAM_C>(addr);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -940,7 +960,9 @@ void ARM9Write32(u32 addr, u32 val)
|
||||||
if (ptr)
|
if (ptr)
|
||||||
{
|
{
|
||||||
*(u32*)&ptr[addr & 0xFFFF] = val;
|
*(u32*)&ptr[addr & 0xFFFF] = val;
|
||||||
|
#ifdef JIT_ENABLED
|
||||||
ARMJIT::CheckAndInvalidate<0, ARMJIT_Memory::memregion_NewSharedWRAM_A>(addr);
|
ARMJIT::CheckAndInvalidate<0, ARMJIT_Memory::memregion_NewSharedWRAM_A>(addr);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -950,7 +972,9 @@ void ARM9Write32(u32 addr, u32 val)
|
||||||
if (ptr)
|
if (ptr)
|
||||||
{
|
{
|
||||||
*(u32*)&ptr[addr & 0x7FFF] = val;
|
*(u32*)&ptr[addr & 0x7FFF] = val;
|
||||||
|
#ifdef JIT_ENABLED
|
||||||
ARMJIT::CheckAndInvalidate<0, ARMJIT_Memory::memregion_NewSharedWRAM_B>(addr);
|
ARMJIT::CheckAndInvalidate<0, ARMJIT_Memory::memregion_NewSharedWRAM_B>(addr);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -960,7 +984,9 @@ void ARM9Write32(u32 addr, u32 val)
|
||||||
if (ptr)
|
if (ptr)
|
||||||
{
|
{
|
||||||
*(u32*)&ptr[addr & 0x7FFF] = val;
|
*(u32*)&ptr[addr & 0x7FFF] = val;
|
||||||
|
#ifdef JIT_ENABLED
|
||||||
ARMJIT::CheckAndInvalidate<0, ARMJIT_Memory::memregion_NewSharedWRAM_C>(addr);
|
ARMJIT::CheckAndInvalidate<0, ARMJIT_Memory::memregion_NewSharedWRAM_C>(addr);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -1196,7 +1222,9 @@ void ARM7Write16(u32 addr, u16 val)
|
||||||
if (ptr)
|
if (ptr)
|
||||||
{
|
{
|
||||||
*(u16*)&ptr[addr & 0xFFFF] = val;
|
*(u16*)&ptr[addr & 0xFFFF] = val;
|
||||||
|
#ifdef JIT_ENABLED
|
||||||
ARMJIT::CheckAndInvalidate<1, ARMJIT_Memory::memregion_NewSharedWRAM_A>(addr);
|
ARMJIT::CheckAndInvalidate<1, ARMJIT_Memory::memregion_NewSharedWRAM_A>(addr);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -1206,7 +1234,9 @@ void ARM7Write16(u32 addr, u16 val)
|
||||||
if (ptr)
|
if (ptr)
|
||||||
{
|
{
|
||||||
*(u16*)&ptr[addr & 0x7FFF] = val;
|
*(u16*)&ptr[addr & 0x7FFF] = val;
|
||||||
|
#ifdef JIT_ENABLED
|
||||||
ARMJIT::CheckAndInvalidate<1, ARMJIT_Memory::memregion_NewSharedWRAM_B>(addr);
|
ARMJIT::CheckAndInvalidate<1, ARMJIT_Memory::memregion_NewSharedWRAM_B>(addr);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -1216,7 +1246,9 @@ void ARM7Write16(u32 addr, u16 val)
|
||||||
if (ptr)
|
if (ptr)
|
||||||
{
|
{
|
||||||
*(u16*)&ptr[addr & 0x7FFF] = val;
|
*(u16*)&ptr[addr & 0x7FFF] = val;
|
||||||
|
#ifdef JIT_ENABLED
|
||||||
ARMJIT::CheckAndInvalidate<1, ARMJIT_Memory::memregion_NewSharedWRAM_C>(addr);
|
ARMJIT::CheckAndInvalidate<1, ARMJIT_Memory::memregion_NewSharedWRAM_C>(addr);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -1241,7 +1273,9 @@ void ARM7Write32(u32 addr, u32 val)
|
||||||
if (ptr)
|
if (ptr)
|
||||||
{
|
{
|
||||||
*(u32*)&ptr[addr & 0xFFFF] = val;
|
*(u32*)&ptr[addr & 0xFFFF] = val;
|
||||||
|
#ifdef JIT_ENABLED
|
||||||
ARMJIT::CheckAndInvalidate<1, ARMJIT_Memory::memregion_NewSharedWRAM_A>(addr);
|
ARMJIT::CheckAndInvalidate<1, ARMJIT_Memory::memregion_NewSharedWRAM_A>(addr);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -1251,7 +1285,9 @@ void ARM7Write32(u32 addr, u32 val)
|
||||||
if (ptr)
|
if (ptr)
|
||||||
{
|
{
|
||||||
*(u32*)&ptr[addr & 0x7FFF] = val;
|
*(u32*)&ptr[addr & 0x7FFF] = val;
|
||||||
|
#ifdef JIT_ENABLED
|
||||||
ARMJIT::CheckAndInvalidate<1, ARMJIT_Memory::memregion_NewSharedWRAM_B>(addr);
|
ARMJIT::CheckAndInvalidate<1, ARMJIT_Memory::memregion_NewSharedWRAM_B>(addr);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -1261,7 +1297,9 @@ void ARM7Write32(u32 addr, u32 val)
|
||||||
if (ptr)
|
if (ptr)
|
||||||
{
|
{
|
||||||
*(u32*)&ptr[addr & 0x7FFF] = val;
|
*(u32*)&ptr[addr & 0x7FFF] = val;
|
||||||
|
#ifdef JIT_ENABLED
|
||||||
ARMJIT::CheckAndInvalidate<1, ARMJIT_Memory::memregion_NewSharedWRAM_C>(addr);
|
ARMJIT::CheckAndInvalidate<1, ARMJIT_Memory::memregion_NewSharedWRAM_C>(addr);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1137,7 +1137,9 @@ void MapSharedWRAM(u8 val)
|
||||||
if (val == WRAMCnt)
|
if (val == WRAMCnt)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
#ifdef JIT_ENABLED
|
||||||
ARMJIT_Memory::RemapSWRAM();
|
ARMJIT_Memory::RemapSWRAM();
|
||||||
|
#endif
|
||||||
|
|
||||||
WRAMCnt = val;
|
WRAMCnt = val;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue