From 54ef2e8a8000b8056aa32eb00179ab15dd48e2d8 Mon Sep 17 00:00:00 2001 From: "SND\\weimingzhi_cp" Date: Fri, 21 May 2010 08:32:39 +0000 Subject: revert the previous revert, and fixed the value in mdec1Interrupt(). git-svn-id: https://pcsxr.svn.codeplex.com/svn/pcsxr@48431 e17a0e51-4ae3-4d35-97c3-1a29b211df97 --- libpcsxcore/ppc/pR3000A.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'libpcsxcore/ppc') diff --git a/libpcsxcore/ppc/pR3000A.c b/libpcsxcore/ppc/pR3000A.c index d0037b64..93745f82 100644 --- a/libpcsxcore/ppc/pR3000A.c +++ b/libpcsxcore/ppc/pR3000A.c @@ -741,7 +741,7 @@ static void Return() static void iRet() { /* store cycle */ - count = idlecyclecount + (pc - pcold)/4; + count = (idlecyclecount + (pc - pcold) / 4) * BIAS; ADDI(PutHWRegSpecial(CYCLECOUNT), GetHWRegSpecial(CYCLECOUNT), count); Return(); } @@ -793,7 +793,7 @@ static void SetBranch() { LIW(0, psxRegs.code); STW(0, OFFSET(&psxRegs, &psxRegs.code), GetHWRegSpecial(PSXREGS)); /* store cycle */ - count = idlecyclecount + (pc - pcold)/4; + count = (idlecyclecount + (pc - pcold) / 4) * BIAS; ADDI(PutHWRegSpecial(CYCLECOUNT), GetHWRegSpecial(CYCLECOUNT), count); treg = GetHWRegSpecial(TARGET); @@ -816,7 +816,7 @@ static void SetBranch() { DisposeHWReg(GetHWRegFromCPUReg(treg)); FlushAllHWReg(); - count = idlecyclecount + (pc - pcold)/4; + count = (idlecyclecount + (pc - pcold) / 4) * BIAS; ADDI(PutHWRegSpecial(CYCLECOUNT), GetHWRegSpecial(CYCLECOUNT), count); FlushAllHWReg(); CALLFunc((u32)psxBranchTest); @@ -836,7 +836,7 @@ static void iJump(u32 branchPC) { LIW(0, psxRegs.code); STW(0, OFFSET(&psxRegs, &psxRegs.code), GetHWRegSpecial(PSXREGS)); /* store cycle */ - count = idlecyclecount + (pc - pcold)/4; + count = (idlecyclecount + (pc - pcold) / 4) * BIAS; ADDI(PutHWRegSpecial(CYCLECOUNT), GetHWRegSpecial(CYCLECOUNT), count); LIW(PutHWRegSpecial(ARG2), branchPC); @@ -855,7 +855,7 @@ static void iJump(u32 branchPC) { LIW(PutHWRegSpecial(PSXPC), branchPC); FlushAllHWReg(); - count = idlecyclecount + (pc - pcold)/4; + count = (idlecyclecount + (pc - pcold) / 4) * BIAS; //if (/*psxRegs.code == 0 &&*/ count == 2 && branchPC == pcold) { // LIW(PutHWRegSpecial(CYCLECOUNT), 0); //} else { @@ -916,7 +916,7 @@ static void iBranch(u32 branchPC, int savectx) { LIW(0, psxRegs.code); STW(0, OFFSET(&psxRegs, &psxRegs.code), GetHWRegSpecial(PSXREGS)); /* store cycle */ - count = idlecyclecount + ((pc+4) - pcold)/4; + count = (idlecyclecount + ((pc+4) - pcold) / 4) * BIAS; ADDI(PutHWRegSpecial(CYCLECOUNT), GetHWRegSpecial(CYCLECOUNT), count); LIW(PutHWRegSpecial(ARG2), branchPC); @@ -937,7 +937,7 @@ static void iBranch(u32 branchPC, int savectx) { FlushAllHWReg(); /* store cycle */ - count = idlecyclecount + (pc - pcold)/4; + count = (idlecyclecount + (pc - pcold) / 4) * BIAS; //if (/*psxRegs.code == 0 &&*/ count == 2 && branchPC == pcold) { // LIW(PutHWRegSpecial(CYCLECOUNT), 0); //} else { @@ -3324,7 +3324,7 @@ static void recHLE() { CALLFunc((u32)psxHLEt[0]); // call dummy function } - count = idlecyclecount + (pc - pcold)/4 + 20; + count = (idlecyclecount + (pc - pcold) / 4 + 20) * BIAS; ADDI(PutHWRegSpecial(CYCLECOUNT), GetHWRegSpecial(CYCLECOUNT), count); FlushAllHWReg(); CALLFunc((u32)psxBranchTest); -- cgit v1.2.3