summaryrefslogtreecommitdiff
path: root/libpcsxcore/ppc
diff options
context:
space:
mode:
authorSND\weimingzhi_cp <SND\weimingzhi_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2010-05-21 08:32:39 +0000
committerSND\weimingzhi_cp <SND\weimingzhi_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2010-05-21 08:32:39 +0000
commit54ef2e8a8000b8056aa32eb00179ab15dd48e2d8 (patch)
tree6a8cfca34b8fc3861302d7a17db0dd7f53ecb74f /libpcsxcore/ppc
parent2030af5d172802ddc2c74dfe4962a220237ebd20 (diff)
downloadpcsxr-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.c16
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);