Use merged CMP/SELECT.

This commit is contained in:
Jean-Philip Desjardins 2025-02-25 15:16:12 -05:00
parent 1ea40fb773
commit 9ea7e5f29b
2 changed files with 9 additions and 5 deletions

View file

@ -1822,10 +1822,16 @@ void VUShared::CheckFlagPipeline(const FLAG_PIPEINFO& pipeInfo, CMipsJitter* cod
codeGen->PushCst(FLAG_PIPELINE_SLOTS - 1);
codeGen->And();
codeGen->PushRelAddrRef(pipeInfo.timeArray);
//Load value for true branch
//Loaded here to allow merging of Cmp and Select operations
codeGen->PushRelAddrRef(pipeInfo.valueArray);
codeGen->PushIdx(1);
codeGen->LoadFromRefIdx();
codeGen->PushRelAddrRef(pipeInfo.timeArray);
codeGen->PushIdx(2);
codeGen->LoadFromRefIdx();
codeGen->PushRel(offsetof(CMIPS, m_State.pipeTime));
codeGen->PushCst(relativePipeTime);
codeGen->Add();
@ -1833,9 +1839,7 @@ void VUShared::CheckFlagPipeline(const FLAG_PIPEINFO& pipeInfo, CMipsJitter* cod
codeGen->Cmp(Jitter::CONDITION_LE);
//True branch
codeGen->PushRelAddrRef(pipeInfo.valueArray);
codeGen->PushIdx(2);
codeGen->LoadFromRefIdx();
codeGen->Swap();
//False branch
codeGen->PushRel(pipeInfo.value);

2
deps/CodeGen vendored

@ -1 +1 @@
Subproject commit 5d1778143ed1e9ae3ba8b8cfa69fb6d1718c2891
Subproject commit 5af39cab7ecc0ff7341a575c1550d87f74fd2305