fix STRD_POST (dumbest copypaste bug of the year)

fixes #276
This commit is contained in:
StapleButter 2018-12-18 01:56:21 +01:00
parent 4a36193cab
commit 694d6cafa2
2 changed files with 10 additions and 9 deletions

View File

@ -236,7 +236,7 @@ A_IMPLEMENT_WB_LDRSTR(LDRB)
offset += cpu->R[(cpu->CurInstr>>16) & 0xF]; \
if (cpu->CurInstr & (1<<21)) cpu->R[(cpu->CurInstr>>16) & 0xF] = offset; \
u32 r = (cpu->CurInstr>>12) & 0xF; \
if (r&1) { r--; printf("!! MISALIGNED LDRD_POST %d\n", r); } \
if (r&1) { r--; printf("!! MISALIGNED LDRD %d\n", r+1); } \
cpu->DataRead32 (offset , &cpu->R[r ]); \
cpu->DataRead32S(offset+4, &cpu->R[r+1]); \
cpu->AddCycles_CDI();
@ -246,7 +246,7 @@ A_IMPLEMENT_WB_LDRSTR(LDRB)
u32 addr = cpu->R[(cpu->CurInstr>>16) & 0xF]; \
cpu->R[(cpu->CurInstr>>16) & 0xF] += offset; \
u32 r = (cpu->CurInstr>>12) & 0xF; \
if (r&1) { r--; printf("!! MISALIGNED LDRD_POST %d\n", r); } \
if (r&1) { r--; printf("!! MISALIGNED LDRD_POST %d\n", r+1); } \
cpu->DataRead32 (addr , &cpu->R[r ]); \
cpu->DataRead32S(addr+4, &cpu->R[r+1]); \
cpu->AddCycles_CDI();
@ -256,18 +256,19 @@ A_IMPLEMENT_WB_LDRSTR(LDRB)
offset += cpu->R[(cpu->CurInstr>>16) & 0xF]; \
if (cpu->CurInstr & (1<<21)) cpu->R[(cpu->CurInstr>>16) & 0xF] = offset; \
u32 r = (cpu->CurInstr>>12) & 0xF; \
if (r&1) { r--; printf("!! MISALIGNED LDRD_POST %d\n", r); } \
if (r&1) { r--; printf("!! MISALIGNED STRD %d\n", r+1); } \
cpu->DataWrite32 (offset , cpu->R[r ]); \
cpu->DataWrite32S(offset+4, cpu->R[r+1]); \
cpu->AddCycles_CD();
#define A_STRD_POST \
if (cpu->Num != 0) return; \
u32 addr = cpu->R[(cpu->CurInstr>>16) & 0xF]; \
cpu->R[(cpu->CurInstr>>16) & 0xF] += offset; \
u32 r = (cpu->CurInstr>>12) & 0xF; \
if (r&1) { r--; printf("!! MISALIGNED LDRD_POST %d\n", r); } \
cpu->DataWrite32 (offset , cpu->R[r ]); \
cpu->DataWrite32S(offset+4, cpu->R[r+1]); \
if (r&1) { r--; printf("!! MISALIGNED STRD_POST %d\n", r+1); } \
cpu->DataWrite32 (addr , cpu->R[r ]); \
cpu->DataWrite32S(addr+4, cpu->R[r+1]); \
cpu->AddCycles_CD();
#define A_LDRH \

View File

@ -1576,7 +1576,7 @@ void debug(u32 param)
// printf("VRAM %c: %02X\n", 'A'+i, GPU::VRAMCNT[i]);
/*FILE*
shit = fopen("debug/jam.bin", "wb");
shit = fopen("debug/justbeep.bin", "wb");
for (u32 i = 0x02000000; i < 0x02400000; i+=4)
{
u32 val = ARM7Read32(i);
@ -1840,7 +1840,7 @@ void ARM9Write16(u32 addr, u16 val)
}
void ARM9Write32(u32 addr, u32 val)
{
{if (addr==0x02FE2E60) printf("!!!! %08X->%08X, %08X\n", addr, val, ARM9->R[15]);
switch (addr & 0xFF000000)
{
case 0x02000000:
@ -2469,7 +2469,7 @@ u16 ARM9IORead16(u32 addr)
return GPU3D::Read16(addr);
}
printf("unknown ARM9 IO read16 %08X %08X\n", addr, ARM9->R[15]);
//printf("unknown ARM9 IO read16 %08X %08X\n", addr, ARM9->R[15]);
return 0;
}