citra-emu
/
citra
Archived
1
0
Fork 0

dyncom: Fix UMAAL

These need to be done as a 64-bit operation.
This commit is contained in:
Lioncash 2015-01-08 11:00:04 -05:00
parent 4c583732f2
commit 1cef6e92d5
1 changed files with 4 additions and 4 deletions

View File

@ -6696,10 +6696,10 @@ unsigned InterpreterMainLoop(ARMul_State* state) {
{ {
if (inst_base->cond == 0xE || CondPassed(cpu, inst_base->cond)) { if (inst_base->cond == 0xE || CondPassed(cpu, inst_base->cond)) {
umaal_inst* const inst_cream = (umaal_inst*)inst_base->component; umaal_inst* const inst_cream = (umaal_inst*)inst_base->component;
const u32 rm = RM; const u64 rm = RM;
const u32 rn = RN; const u64 rn = RN;
const u32 rd_lo = RDLO; const u64 rd_lo = RDLO;
const u32 rd_hi = RDHI; const u64 rd_hi = RDHI;
const u64 result = (rm * rn) + rd_lo + rd_hi; const u64 result = (rm * rn) + rd_lo + rd_hi;
RDLO = (result & 0xFFFFFFFF); RDLO = (result & 0xFFFFFFFF);