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
@ -575,7 +575,7 @@ void Reset()
|
||||
RCnt = 0;
|
||||
|
||||
#ifdef JIT_ENABLED
|
||||
ARMJIT::InvalidateBlockCache();
|
||||
ARMJIT::ResetBlockCache();
|
||||
#endif
|
||||
|
||||
NDSCart::Reset();
|
||||
@ -807,7 +807,7 @@ bool DoSavestate(Savestate* file)
|
||||
#ifdef JIT_ENABLED
|
||||
if (!file->Saving)
|
||||
{
|
||||
ARMJIT::InvalidateBlockCache();
|
||||
ARMJIT::ResetBlockCache();
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -2016,10 +2016,6 @@ u32 ARM9Read32(u32 addr)
|
||||
|
||||
void ARM9Write8(u32 addr, u8 val)
|
||||
{
|
||||
#ifdef JIT_ENABLED
|
||||
ARMJIT::Invalidate16<0>(addr);
|
||||
#endif
|
||||
|
||||
switch (addr & 0xFF000000)
|
||||
{
|
||||
case 0x02000000:
|
||||
@ -2070,10 +2066,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:
|
||||
@ -2140,10 +2132,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:
|
||||
@ -2439,7 +2427,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)
|
||||
@ -2502,7 +2490,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)
|
||||
@ -2575,7 +2563,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