aboutsummaryrefslogtreecommitdiff
path: root/src/ARMJIT_A64
diff options
context:
space:
mode:
authorRSDuck <rsduck@users.noreply.github.com>2020-07-27 23:14:23 +0200
committerRSDuck <rsduck@users.noreply.github.com>2020-07-27 23:14:39 +0200
commit5903b11bda0aa181f2914a06650b2cbaf28aa9f1 (patch)
treea13283da7f0d35beaedc68849bd25d7f3b62a06e /src/ARMJIT_A64
parent026d0dcab88ec8f20c28c59acadfc384fe88b0b7 (diff)
subtract cycles after checking IRQ and Halt
also switch back to adding to ARM::Cycles instead of subtracting from them
Diffstat (limited to 'src/ARMJIT_A64')
-rw-r--r--src/ARMJIT_A64/ARMJIT_Branch.cpp10
-rw-r--r--src/ARMJIT_A64/ARMJIT_Compiler.cpp16
2 files changed, 13 insertions, 13 deletions
diff --git a/src/ARMJIT_A64/ARMJIT_Branch.cpp b/src/ARMJIT_A64/ARMJIT_Branch.cpp
index f130938..117eaa0 100644
--- a/src/ARMJIT_A64/ARMJIT_Branch.cpp
+++ b/src/ARMJIT_A64/ARMJIT_Branch.cpp
@@ -143,7 +143,7 @@ void Compiler::Comp_JumpTo(u32 addr, bool forceNonConstantCycles)
if ((Thumb || CurInstr.Cond() >= 0xE) && !forceNonConstantCycles)
ConstantCycles += cycles;
else
- SUB(RCycles, RCycles, cycles);
+ ADD(RCycles, RCycles, cycles);
}
@@ -181,7 +181,7 @@ void* Compiler::Gen_JumpTo9(int kind)
STR(INDEX_UNSIGNED, W0, RCPU, offsetof(ARMv5, R[15]));
ADD(W1, W1, W1);
- SUB(RCycles, RCycles, W1);
+ ADD(RCycles, RCycles, W1);
RET();
}
@@ -201,7 +201,7 @@ void* Compiler::Gen_JumpTo9(int kind)
ADD(W2, W1, W1);
TSTI2R(W0, 0x2);
CSEL(W1, W1, W2, CC_EQ);
- SUB(RCycles, RCycles, W1);
+ ADD(RCycles, RCycles, W1);
RET();
}
@@ -229,7 +229,7 @@ void* Compiler::Gen_JumpTo7(int kind)
UBFX(W2, W3, 0, 8);
UBFX(W3, W3, 8, 8);
ADD(W2, W3, W2);
- SUB(RCycles, RCycles, W2);
+ ADD(RCycles, RCycles, W2);
ANDI2R(W0, W0, ~3);
@@ -253,7 +253,7 @@ void* Compiler::Gen_JumpTo7(int kind)
UBFX(W2, W3, 16, 8);
UBFX(W3, W3, 24, 8);
ADD(W2, W3, W2);
- SUB(RCycles, RCycles, W2);
+ ADD(RCycles, RCycles, W2);
ANDI2R(W0, W0, ~1);
diff --git a/src/ARMJIT_A64/ARMJIT_Compiler.cpp b/src/ARMJIT_A64/ARMJIT_Compiler.cpp
index 413c673..b046123 100644
--- a/src/ARMJIT_A64/ARMJIT_Compiler.cpp
+++ b/src/ARMJIT_A64/ARMJIT_Compiler.cpp
@@ -629,7 +629,7 @@ void Compiler::Comp_BranchSpecialBehaviour(bool taken)
{
RegCache.PrepareExit();
- SUB(RCycles, RCycles, ConstantCycles);
+ ADD(RCycles, RCycles, ConstantCycles);
QuickTailCall(X0, ARM_Ret);
}
}
@@ -770,7 +770,7 @@ JitBlockEntry Compiler::CompileBlock(ARM* cpu, bool thumb, FetchedInstr instrs[]
RegCache.Flush();
- SUB(RCycles, RCycles, ConstantCycles);
+ ADD(RCycles, RCycles, ConstantCycles);
QuickTailCall(X0, ARM_Ret);
FlushIcache();
@@ -800,7 +800,7 @@ void Compiler::Comp_AddCycles_C(bool forceNonConstant)
if (forceNonConstant)
ConstantCycles += cycles;
else
- SUB(RCycles, RCycles, cycles);
+ ADD(RCycles, RCycles, cycles);
}
void Compiler::Comp_AddCycles_CI(u32 numI)
@@ -814,7 +814,7 @@ void Compiler::Comp_AddCycles_CI(u32 numI)
if (Thumb || CurInstr.Cond() == 0xE)
ConstantCycles += cycles;
else
- SUB(RCycles, RCycles, cycles);
+ ADD(RCycles, RCycles, cycles);
}
void Compiler::Comp_AddCycles_CI(u32 c, ARM64Reg numI, ArithOption shift)
@@ -825,11 +825,11 @@ void Compiler::Comp_AddCycles_CI(u32 c, ARM64Reg numI, ArithOption shift)
NDS::ARM7MemTimings[CurInstr.CodeCycles][Thumb ? 0 : 2]
: ((R15 & 0x2) ? 0 : CurInstr.CodeCycles)) + c;
- SUB(RCycles, RCycles, cycles);
+ ADD(RCycles, RCycles, cycles);
if (Thumb || CurInstr.Cond() >= 0xE)
ConstantCycles += cycles;
else
- SUB(RCycles, RCycles, cycles);
+ ADD(RCycles, RCycles, cycles);
}
void Compiler::Comp_AddCycles_CDI()
@@ -866,7 +866,7 @@ void Compiler::Comp_AddCycles_CDI()
}
if (!Thumb && CurInstr.Cond() < 0xE)
- SUB(RCycles, RCycles, cycles);
+ ADD(RCycles, RCycles, cycles);
else
ConstantCycles += cycles;
}
@@ -910,7 +910,7 @@ void Compiler::Comp_AddCycles_CD()
}
if ((!Thumb && CurInstr.Cond() < 0xE) && IrregularCycles)
- SUB(RCycles, RCycles, cycles);
+ ADD(RCycles, RCycles, cycles);
else
ConstantCycles += cycles;
}