Core: remove #ifdef toremove block in CX86RecompilerOps::SPECIAL_DMULTU()

This commit is contained in:
zilmar 2022-11-21 08:55:51 +10:30
parent 9743f12b1d
commit 2a6d3cd519
1 changed files with 0 additions and 67 deletions

View File

@ -5126,73 +5126,6 @@ void CX86RecompilerOps::SPECIAL_DMULTU()
m_Assembler.MoveConstToVariable(&R4300iOp::m_Opcode.Value, "R4300iOp::m_Opcode.Value", m_Opcode.Value);
m_Assembler.CallFunc((uint32_t)R4300iOp::SPECIAL_DMULTU, "R4300iOp::SPECIAL_DMULTU");
m_RegWorkingSet.AfterCallDirect();
#ifdef toremove
/* _RegLO->UDW = (uint64)_GPR[m_Opcode.rs].UW[0] * (uint64)_GPR[m_Opcode.rt].UW[0]; */
X86Protected(asmjit::x86::edx) = true;
Map_TempReg(asmjit::x86::eax, m_Opcode.rs, false);
X86Protected(asmjit::x86::edx) = false;
Map_TempReg(asmjit::x86::edx, m_Opcode.rt, false);
m_Assembler.MulX86reg(asmjit::x86::edx);
m_Assembler.MoveX86regToVariable(&_RegLO->UW[0], "_RegLO->UW[0]", asmjit::x86::eax);
m_Assembler.MoveX86regToVariable(&_RegLO->UW[1], "_RegLO->UW[1]", asmjit::x86::edx);
/* _RegHI->UDW = (uint64)_GPR[m_Opcode.rs].UW[1] * (uint64)_GPR[m_Opcode.rt].UW[1]; */
Map_TempReg(asmjit::x86::eax, m_Opcode.rs, true);
Map_TempReg(asmjit::x86::edx, m_Opcode.rt, true);
m_Assembler.MulX86reg(asmjit::x86::edx);
m_Assembler.MoveX86regToVariable(&_RegHI->UW[0], "_RegHI->UW[0]", asmjit::x86::eax);
m_Assembler.MoveX86regToVariable(&_RegHI->UW[1], "_RegHI->UW[1]", asmjit::x86::edx);
/* Tmp[0].UDW = (uint64)_GPR[m_Opcode.rs].UW[1] * (uint64)_GPR[m_Opcode.rt].UW[0]; */
Map_TempReg(asmjit::x86::eax, m_Opcode.rs, true);
Map_TempReg(asmjit::x86::edx, m_Opcode.rt, false);
Map_TempReg(asmjit::x86::ebx, -1, false);
Map_TempReg(asmjit::x86::ecx, -1, false);
m_Assembler.MulX86reg(asmjit::x86::edx);
m_Assembler.MoveX86RegToX86Reg(asmjit::x86::ebx, asmjit::x86::eax); // EDX:EAX -> ECX:EBX
m_Assembler.MoveX86RegToX86Reg(asmjit::x86::ecx, asmjit::x86::edx);
/* Tmp[1].UDW = (uint64)_GPR[m_Opcode.rs].UW[0] * (uint64)_GPR[m_Opcode.rt].UW[1]; */
Map_TempReg(asmjit::x86::eax, m_Opcode.rs, false);
Map_TempReg(asmjit::x86::edx, m_Opcode.rt, true);
m_Assembler.MulX86reg(asmjit::x86::edx);
Map_TempReg(asmjit::x86::esi, -1, false);
Map_TempReg(asmjit::x86::edi, -1, false);
m_Assembler.MoveX86RegToX86Reg(asmjit::x86::esi, asmjit::x86::eax); // EDX:EAX -> EDI:ESI
m_Assembler.MoveX86RegToX86Reg(asmjit::x86::edi, asmjit::x86::edx);
/* Tmp[2].UDW = (uint64)_RegLO->UW[1] + (uint64)Tmp[0].UW[0] + (uint64)Tmp[1].UW[0]; */
m_Assembler.XorX86RegToX86Reg(asmjit::x86::edx, asmjit::x86::edx);
m_Assembler.MoveVariableToX86reg(asmjit::x86::eax, &_RegLO->UW[1], "_RegLO->UW[1]");
m_Assembler.AddX86RegToX86Reg(asmjit::x86::eax, asmjit::x86::ebx);
m_Assembler.AddConstToX86Reg(asmjit::x86::edx, 0);
m_Assembler.AddX86RegToX86Reg(asmjit::x86::eax, asmjit::x86::esi);
m_Assembler.AddConstToX86Reg(asmjit::x86::edx, 0); // EDX:EAX
/* _RegLO->UDW += ((uint64)Tmp[0].UW[0] + (uint64)Tmp[1].UW[0]) << 32; */
/* [low+4] += ebx + esi */
AddX86regToVariable(&_RegLO->UW[1], "_RegLO->UW[1]", asmjit::x86::ebx);
AddX86regToVariable(&_RegLO->UW[1], "_RegLO->UW[1]", asmjit::x86::esi);
/* _RegHI->UDW += (uint64)Tmp[0].UW[1] + (uint64)Tmp[1].UW[1] + Tmp[2].UW[1]; */
/* [hi] += ecx + edi + edx */
AddX86regToVariable(&_RegHI->UW[0], "_RegHI->UW[0]", asmjit::x86::ecx);
AdcConstToVariable(&_RegHI->UW[1], "_RegHI->UW[1]", 0);
AddX86regToVariable(&_RegHI->UW[0], "_RegHI->UW[0]", asmjit::x86::edi);
AdcConstToVariable(&_RegHI->UW[1], "_RegHI->UW[1]", 0);
AddX86regToVariable(&_RegHI->UW[0], "_RegHI->UW[0]", asmjit::x86::edx);
AdcConstToVariable(&_RegHI->UW[1], "_RegHI->UW[1]", 0);
#endif
}
void CX86RecompilerOps::SPECIAL_DDIV()