diff options
| author | SND\weimingzhi_cp <SND\weimingzhi_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97> | 2010-05-21 08:32:39 +0000 |
|---|---|---|
| committer | SND\weimingzhi_cp <SND\weimingzhi_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97> | 2010-05-21 08:32:39 +0000 |
| commit | 54ef2e8a8000b8056aa32eb00179ab15dd48e2d8 (patch) | |
| tree | 6a8cfca34b8fc3861302d7a17db0dd7f53ecb74f /libpcsxcore/ppc | |
| parent | 2030af5d172802ddc2c74dfe4962a220237ebd20 (diff) | |
| download | pcsxr-54ef2e8a8000b8056aa32eb00179ab15dd48e2d8.tar.gz | |
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
Diffstat (limited to 'libpcsxcore/ppc')
| -rw-r--r-- | libpcsxcore/ppc/pR3000A.c | 16 |
1 files changed, 8 insertions, 8 deletions
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); |
