diff options
| author | degasus <wickmarkus@web.de> | 2017-11-18 17:42:11 +0100 |
|---|---|---|
| committer | degasus <wickmarkus@web.de> | 2017-11-18 17:43:38 +0100 |
| commit | 6ea3f538b40ee9a378366f0c35c02bddfbfb7f62 (patch) | |
| tree | e5da044c18a58abaa015fc980ae9b1c9facfdbae | |
| parent | 6c9bb67ca0143f1bdc6dd12981e3be7c70b8189e (diff) | |
JitArm64: Inline GP check in Cleanup.
We're calling this function up to 2M times per second. Let's inline the pre-check.
| -rw-r--r-- | Source/Core/Core/PowerPC/JitArm64/Jit.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/Source/Core/Core/PowerPC/JitArm64/Jit.cpp b/Source/Core/Core/PowerPC/JitArm64/Jit.cpp index 4b27c13f00..4452d3d1e4 100644 --- a/Source/Core/Core/PowerPC/JitArm64/Jit.cpp +++ b/Source/Core/Core/PowerPC/JitArm64/Jit.cpp @@ -231,8 +231,13 @@ void JitArm64::Cleanup() { if (jo.optimizeGatherPipe && js.fifoBytesSinceCheck > 0) { - MOVP2R(X0, &GPFifo::FastCheckGatherPipe); + LDP(INDEX_SIGNED, X0, X1, PPC_REG, PPCSTATE_OFF(gather_pipe_ptr)); + SUB(X0, X0, X1); + CMP(X0, GPFifo::GATHER_PIPE_SIZE); + FixupBranch exit = B(CC_LT); + MOVP2R(X0, &GPFifo::UpdateGatherPipe); BLR(X0); + SetJumpTarget(exit); } } |
