Merge pull request #2004 from MerryMage/stm
Dyncom: Correct implementation of STM for R15
This commit is contained in:
		| @@ -3228,7 +3228,7 @@ unsigned InterpreterMainLoop(ARMul_State* cpu) { | |||||||
|                     addr += 4; |                     addr += 4; | ||||||
|                 } |                 } | ||||||
|                 if (BIT(inst_cream->inst, 15)) { |                 if (BIT(inst_cream->inst, 15)) { | ||||||
|                     cpu->WriteMemory32(addr, cpu->Reg_usr[1] + 8); |                     cpu->WriteMemory32(addr, cpu->Reg[15] + 8); | ||||||
|                 } |                 } | ||||||
|             } else { |             } else { | ||||||
|                 for (int i = 0; i < 15; i++) { |                 for (int i = 0; i < 15; i++) { | ||||||
| @@ -3243,8 +3243,9 @@ unsigned InterpreterMainLoop(ARMul_State* cpu) { | |||||||
|                 } |                 } | ||||||
|  |  | ||||||
|                 // Check PC reg |                 // Check PC reg | ||||||
|                 if (BIT(inst_cream->inst, 15)) |                 if (BIT(inst_cream->inst, 15)) { | ||||||
|                     cpu->WriteMemory32(addr, cpu->Reg_usr[1] + 8); |                     cpu->WriteMemory32(addr, cpu->Reg[15] + 8); | ||||||
|  |                 } | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|         cpu->Reg[15] += cpu->GetInstructionSize(); |         cpu->Reg[15] += cpu->GetInstructionSize(); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user