mirror of
https://github.com/melonDS-emu/melonDS.git
synced 2025-07-23 14:19:55 -06:00
new block cache and much more...
- more reliable code invalidation detection - blocks aren't stopped at any branch, but are being followed if possible to get larger blocks - idle loop recognition - optimised literal loads, load/store cycle counting and loads/stores from constant addresses
This commit is contained in:
22
src/NDS.cpp
22
src/NDS.cpp
@ -536,7 +536,7 @@ void Reset()
|
||||
RCnt = 0;
|
||||
|
||||
#ifdef JIT_ENABLED
|
||||
ARMJIT::InvalidateBlockCache();
|
||||
ARMJIT::ResetBlockCache();
|
||||
#endif
|
||||
|
||||
NDSCart::Reset();
|
||||
@ -757,7 +757,7 @@ bool DoSavestate(Savestate* file)
|
||||
#ifdef JIT_ENABLED
|
||||
if (!file->Saving)
|
||||
{
|
||||
ARMJIT::InvalidateBlockCache();
|
||||
ARMJIT::ResetBlockCache();
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -1870,10 +1870,6 @@ u32 ARM9Read32(u32 addr)
|
||||
|
||||
void ARM9Write8(u32 addr, u8 val)
|
||||
{
|
||||
#ifdef JIT_ENABLED
|
||||
ARMJIT::Invalidate16<0>(addr);
|
||||
#endif
|
||||
|
||||
switch (addr & 0xFF000000)
|
||||
{
|
||||
case 0x02000000:
|
||||
@ -1924,10 +1920,6 @@ void ARM9Write8(u32 addr, u8 val)
|
||||
|
||||
void ARM9Write16(u32 addr, u16 val)
|
||||
{
|
||||
#ifdef JIT_ENABLED
|
||||
ARMJIT::Invalidate16<0>(addr);
|
||||
#endif
|
||||
|
||||
switch (addr & 0xFF000000)
|
||||
{
|
||||
case 0x02000000:
|
||||
@ -1994,10 +1986,6 @@ void ARM9Write16(u32 addr, u16 val)
|
||||
|
||||
void ARM9Write32(u32 addr, u32 val)
|
||||
{
|
||||
#ifdef JIT_ENABLED
|
||||
ARMJIT::Invalidate32<0>(addr);
|
||||
#endif
|
||||
|
||||
switch (addr & 0xFF000000)
|
||||
{
|
||||
case 0x02000000:
|
||||
@ -2292,7 +2280,7 @@ u32 ARM7Read32(u32 addr)
|
||||
void ARM7Write8(u32 addr, u8 val)
|
||||
{
|
||||
#ifdef JIT_ENABLED
|
||||
ARMJIT::Invalidate16<1>(addr);
|
||||
ARMJIT::InvalidateByAddr7(addr);
|
||||
#endif
|
||||
|
||||
switch (addr & 0xFF800000)
|
||||
@ -2355,7 +2343,7 @@ void ARM7Write8(u32 addr, u8 val)
|
||||
void ARM7Write16(u32 addr, u16 val)
|
||||
{
|
||||
#ifdef JIT_ENABLED
|
||||
ARMJIT::Invalidate16<1>(addr);
|
||||
ARMJIT::InvalidateByAddr7(addr);
|
||||
#endif
|
||||
|
||||
switch (addr & 0xFF800000)
|
||||
@ -2428,7 +2416,7 @@ void ARM7Write16(u32 addr, u16 val)
|
||||
void ARM7Write32(u32 addr, u32 val)
|
||||
{
|
||||
#ifdef JIT_ENABLED
|
||||
ARMJIT::Invalidate32<1>(addr);
|
||||
ARMJIT::InvalidateByAddr7(addr);
|
||||
#endif
|
||||
|
||||
switch (addr & 0xFF800000)
|
||||
|
Reference in New Issue
Block a user