Dyncom: Correct STREXD behaviour when CPSR.E == 1

This commit is contained in:
MerryMage 2016-08-09 21:16:14 +01:00
parent 3c3a6cb2af
commit f933328f3d

View File

@ -1884,8 +1884,13 @@ unsigned InterpreterMainLoop(ARMul_State* cpu) {
cpu->SetExclusiveMemoryAddress(read_addr); cpu->SetExclusiveMemoryAddress(read_addr);
RD = cpu->ReadMemory32(read_addr); if (cpu->InBigEndianMode()) {
RD2 = cpu->ReadMemory32(read_addr + 4); RD = cpu->ReadMemory32(read_addr + 4);
RD2 = cpu->ReadMemory32(read_addr);
} else {
RD = cpu->ReadMemory32(read_addr);
RD2 = cpu->ReadMemory32(read_addr + 4);
}
} }
cpu->Reg[15] += cpu->GetInstructionSize(); cpu->Reg[15] += cpu->GetInstructionSize();
INC_PC(sizeof(generic_arm_inst)); INC_PC(sizeof(generic_arm_inst));