From 5e760a15361bb20b1d2a659caa74242e8a157344 Mon Sep 17 00:00:00 2001 From: Jaklyy <102590697+Jaklyy@users.noreply.github.com> Date: Sun, 2 Jun 2024 19:34:29 -0400 Subject: [PATCH] slightly cleaner code --- src/ARMInterpreter_LoadStore.cpp | 33 +++++++++++++++++++++++--------- 1 file changed, 24 insertions(+), 9 deletions(-) diff --git a/src/ARMInterpreter_LoadStore.cpp b/src/ARMInterpreter_LoadStore.cpp index 5c6b4c42..afcca05d 100644 --- a/src/ARMInterpreter_LoadStore.cpp +++ b/src/ARMInterpreter_LoadStore.cpp @@ -427,8 +427,13 @@ void A_LDM(ARM* cpu) if (cpu->CurInstr & (1<DataRead32 (base, &cpu->R[i])) {dataabort = true; goto abortjump;}} - else if (!cpu->DataRead32S(base, &cpu->R[i])) {dataabort = true; goto abortjump;} + if (!(first ? cpu->DataRead32 (base, &cpu->R[i]) + : cpu->DataRead32S(base, &cpu->R[i]))) + { + dataabort = true; + goto abortjump; + } + first = false; if (!preinc) base += 4; } @@ -438,8 +443,12 @@ void A_LDM(ARM* cpu) if ((cpu->CurInstr & (1<<15))) { if (preinc) base += 4; - if (first) {if (!cpu->DataRead32 (base, &pc)) dataabort = true;} - else if (!cpu->DataRead32S(base, &pc)) dataabort = true; + if (!(first ? cpu->DataRead32 (base, &pc) + : cpu->DataRead32S(base, &pc))) + { + dataabort = true; + } + if (!preinc) base += 4; if (cpu->Num == 1) @@ -524,15 +533,21 @@ void A_STM(ARM* cpu) { if (preinc) base += 4; + u32 val; if (i == baseid && !isbanked) { if ((cpu->Num == 0) || (!(cpu->CurInstr & ((1<DataWrite32(base, oldbase) : cpu->DataWrite32S(base, oldbase))) {dataabort = true; break;}} - else - if (!(first ? cpu->DataWrite32(base, base) : cpu->DataWrite32S(base, base))) {dataabort = true; break;} // checkme + val = oldbase; + else val = base; + } + else val = cpu->R[i]; + + if (!(first ? cpu->DataWrite32 (base, val) + : cpu->DataWrite32S(base, val))) + { + dataabort = true; + break; } - else - if (!(first ? cpu->DataWrite32(base, cpu->R[i]) : cpu->DataWrite32S(base, cpu->R[i]))) {dataabort = true; break;} first = false;