DS Memory: Implement LDM on ITCM
Vicki Pfau vi@endrift.com
Fri, 17 Feb 2017 16:58:59 -0800
1 files changed,
8 insertions(+),
0 deletions(-)
jump to
M
src/ds/memory.c
→
src/ds/memory.c
@@ -1030,6 +1030,14 @@ uint32_t addressMisalign = address & 0x3;
address &= 0xFFFFFFFC; switch (address >> DS_BASE_OFFSET) { + case DS9_REGION_ITCM: + case DS9_REGION_ITCM_MIRROR: + LDM_LOOP(if (address < memory->itcmSize) { + LOAD_32(value, address & (DS9_SIZE_ITCM - 1), memory->itcm); + } else { + mLOG(DS_MEM, STUB, "Bad DS9 LDM: %08X:%08X", address, value); + }); + break; case DS_REGION_RAM: LDM_LOOP(if ((address & ~(DS9_SIZE_DTCM - 1)) == memory->dtcmBase) { LOAD_32(value, address & (DS9_SIZE_DTCM - 1), memory->dtcm);