diff --git a/Source/Project64-core/N64System/Recompiler/x86/x86RecompilerOps.cpp b/Source/Project64-core/N64System/Recompiler/x86/x86RecompilerOps.cpp index d1ecc5d03..15fab9b82 100644 --- a/Source/Project64-core/N64System/Recompiler/x86/x86RecompilerOps.cpp +++ b/Source/Project64-core/N64System/Recompiler/x86/x86RecompilerOps.cpp @@ -210,7 +210,7 @@ void CX86RecompilerOps::PreCompileOpcode(void) m_Assembler.MoveConstToVariable(m_CompilePC, &g_Reg->m_PROGRAM_COUNTER, "PROGRAM_COUNTER"); if (g_SyncSystem) { #ifdef _WIN32 - m_Assembler.MoveConstToX86reg((uint32_t)g_BaseSystem, CX86Ops::x86_ECX); + m_Assembler.MoveConstToX86reg(CX86Ops::x86_ECX, (uint32_t)g_BaseSystem); m_Assembler.CallFunc(AddressOf(&CN64System::SyncSystem), "CN64System::SyncSystem"); #else m_Assembler.PushImm32((uint32_t)g_BaseSystem); @@ -230,7 +230,7 @@ void CX86RecompilerOps::PreCompileOpcode(void) if (g_SyncSystem) { #ifdef _WIN32 - m_Assembler.MoveConstToX86reg((uint32_t)g_BaseSystem, CX86Ops::x86_ECX); + m_Assembler.MoveConstToX86reg(CX86Ops::x86_ECX, (uint32_t)g_BaseSystem); m_Assembler.CallFunc(AddressOf(&CN64System::SyncSystem), "CN64System::SyncSystem"); #else m_Assembler.PushImm32((uint32_t)g_BaseSystem); @@ -259,7 +259,7 @@ void CX86RecompilerOps::PreCompileOpcode(void) m_Assembler.MoveConstToVariable(m_CompilePC,&g_Reg->m_PROGRAM_COUNTER,"PROGRAM_COUNTER"); if (g_SyncSystem) { #ifdef _WIN32 - m_Assembler.MoveConstToX86reg((uint32_t)g_BaseSystem, CX86Ops::x86_ECX); + m_Assembler.MoveConstToX86reg(CX86Ops::x86_ECX, (uint32_t)g_BaseSystem); m_Assembler.CallFunc(AddressOf(&CN64System::SyncSystem), "CN64System::SyncSystem"); #else m_Assembler.PushImm32((uint32_t)g_BaseSystem); @@ -280,7 +280,7 @@ void CX86RecompilerOps::PreCompileOpcode(void) m_Assembler.MoveConstToVariable(m_CompilePC,&g_Reg->m_PROGRAM_COUNTER,"PROGRAM_COUNTER"); if (g_SyncSystem) { #ifdef _WIN32 - m_Assembler.MoveConstToX86reg((uint32_t)g_BaseSystem, CX86Ops::x86_ECX); + m_Assembler.MoveConstToX86reg(CX86Ops::x86_ECX, (uint32_t)g_BaseSystem); m_Assembler.CallFunc(AddressOf(&CN64System::SyncSystem), "CN64System::SyncSystem"); #else m_Assembler.PushImm32((uint32_t)g_BaseSystem); @@ -296,7 +296,7 @@ void CX86RecompilerOps::PreCompileOpcode(void) m_Assembler.MoveConstToVariable(m_CompilePC,&g_Reg->m_PROGRAM_COUNTER,"PROGRAM_COUNTER"); if (g_SyncSystem) { #ifdef _WIN32 - m_Assembler.MoveConstToX86reg((uint32_t)g_BaseSystem, CX86Ops::x86_ECX); + m_Assembler.MoveConstToX86reg(CX86Ops::x86_ECX, (uint32_t)g_BaseSystem); m_Assembler.CallFunc(AddressOf(&CN64System::SyncSystem), "CN64System::SyncSystem"); #else m_Assembler.PushImm32((uint32_t)g_BaseSystem); @@ -341,7 +341,7 @@ void CX86RecompilerOps::PostCompileOpcode(void) if (g_SyncSystem) { m_RegWorkingSet.BeforeCallDirect(); - m_Assembler.MoveConstToX86reg((uint32_t)g_BaseSystem, CX86Ops::x86_ECX); + m_Assembler.MoveConstToX86reg(CX86Ops::x86_ECX, (uint32_t)g_BaseSystem); m_Assembler.CallFunc(AddressOf(&CN64System::SyncSystemPC), "CN64System::SyncSystemPC"); m_RegWorkingSet.AfterCallDirect(); } @@ -2640,7 +2640,7 @@ void CX86RecompilerOps::LUI() } else { - m_Assembler.MoveConstToX86reg((uint32_t)(Address + g_MMU->Rdram()), Reg); + m_Assembler.MoveConstToX86reg(Reg, (uint32_t)(Address + g_MMU->Rdram())); } } @@ -2844,7 +2844,7 @@ void CX86RecompilerOps::LB_KnownAddress(CX86Ops::x86Reg Reg, uint32_t VAddr, boo if (VAddr < 0x80000000 || VAddr >= 0xC0000000) { CX86Ops::x86Reg AddressReg = Map_TempReg(CX86Ops::x86_Unknown, -1, false, false); - m_Assembler.MoveConstToX86reg(VAddr, AddressReg); + m_Assembler.MoveConstToX86reg(AddressReg, VAddr); CompileLoadMemoryValue(AddressReg, Reg, CX86Ops::x86_Unknown, 8, SignExtend); return; } @@ -2852,7 +2852,7 @@ void CX86RecompilerOps::LB_KnownAddress(CX86Ops::x86Reg Reg, uint32_t VAddr, boo uint32_t PAddr; if (!m_MMU.VAddrToPAddr(VAddr, PAddr)) { - m_Assembler.MoveConstToX86reg(0, Reg); + m_Assembler.MoveConstToX86reg(Reg, 0); m_CodeBlock.Log("%s\nFailed to translate address %08X", __FUNCTION__, VAddr); if (BreakOnUnhandledMemory()) { @@ -2884,7 +2884,7 @@ void CX86RecompilerOps::LB_KnownAddress(CX86Ops::x86Reg Reg, uint32_t VAddr, boo } else { - m_Assembler.MoveConstToX86reg(0, Reg); + m_Assembler.MoveConstToX86reg(Reg, 0); } break; case 0x04000000: @@ -2912,7 +2912,7 @@ void CX86RecompilerOps::LB_KnownAddress(CX86Ops::x86Reg Reg, uint32_t VAddr, boo } else { - m_Assembler.MoveConstToX86reg(0, Reg); + m_Assembler.MoveConstToX86reg(Reg, 0); if (BreakOnUnhandledMemory()) { g_Notify->BreakPoint(__FILE__, __LINE__); @@ -2944,11 +2944,11 @@ void CX86RecompilerOps::LB_KnownAddress(CX86Ops::x86Reg Reg, uint32_t VAddr, boo } else { - m_Assembler.MoveConstToX86reg(0, Reg); + m_Assembler.MoveConstToX86reg(Reg, 0); } break; default: - m_Assembler.MoveConstToX86reg(0, Reg); + m_Assembler.MoveConstToX86reg(Reg, 0); if (BreakOnUnhandledMemory()) { g_Notify->BreakPoint(__FILE__, __LINE__); @@ -2963,13 +2963,13 @@ void CX86RecompilerOps::LH_KnownAddress(CX86Ops::x86Reg Reg, uint32_t VAddr, boo if (VAddr < 0x80000000 || VAddr >= 0xC0000000) { CX86Ops::x86Reg AddressReg = Map_TempReg(CX86Ops::x86_Unknown, -1, false, false); - m_Assembler.MoveConstToX86reg(VAddr, AddressReg); + m_Assembler.MoveConstToX86reg(AddressReg, VAddr); CompileLoadMemoryValue(AddressReg, Reg, CX86Ops::x86_Unknown, 16, SignExtend); } if (!m_MMU.VAddrToPAddr(VAddr, PAddr)) { - m_Assembler.MoveConstToX86reg(0, Reg); + m_Assembler.MoveConstToX86reg(Reg, 0); m_CodeBlock.Log("%s\nFailed to translate address %08X", __FUNCTION__, VAddr); if (BreakOnUnhandledMemory()) { @@ -3001,7 +3001,7 @@ void CX86RecompilerOps::LH_KnownAddress(CX86Ops::x86Reg Reg, uint32_t VAddr, boo } else { - m_Assembler.MoveConstToX86reg(0, Reg); + m_Assembler.MoveConstToX86reg(Reg, 0); } break; case 0x10000000: @@ -3024,11 +3024,11 @@ void CX86RecompilerOps::LH_KnownAddress(CX86Ops::x86Reg Reg, uint32_t VAddr, boo } else { - m_Assembler.MoveConstToX86reg(0, Reg); + m_Assembler.MoveConstToX86reg(Reg, 0); } break; default: - m_Assembler.MoveConstToX86reg(0, Reg); + m_Assembler.MoveConstToX86reg(Reg, 0); if (BreakOnUnhandledMemory()) { g_Notify->BreakPoint(__FILE__, __LINE__); @@ -3183,7 +3183,7 @@ void CX86RecompilerOps::LW_KnownAddress(CX86Ops::x86Reg Reg, uint32_t VAddr) if (VAddr < 0x80000000 || VAddr >= 0xC0000000) { CX86Ops::x86Reg AddressReg = Map_TempReg(CX86Ops::x86_Unknown, -1, false, false); - m_Assembler.MoveConstToX86reg(VAddr, AddressReg); + m_Assembler.MoveConstToX86reg(AddressReg, VAddr); CompileLoadMemoryValue(AddressReg, Reg, CX86Ops::x86_Unknown, 32, true); } else @@ -3210,7 +3210,7 @@ void CX86RecompilerOps::LW_KnownAddress(CX86Ops::x86Reg Reg, uint32_t VAddr) } else { - m_Assembler.MoveConstToX86reg(0, Reg); + m_Assembler.MoveConstToX86reg(Reg, 0); } break; case 0x04000000: @@ -3261,7 +3261,7 @@ void CX86RecompilerOps::LW_KnownAddress(CX86Ops::x86Reg Reg, uint32_t VAddr) case 0x04300008: m_Assembler.MoveVariableToX86reg(&g_Reg->MI_INTR_REG, "MI_INTR_REG", Reg); break; case 0x0430000C: m_Assembler.MoveVariableToX86reg(&g_Reg->MI_INTR_MASK_REG, "MI_INTR_MASK_REG", Reg); break; default: - m_Assembler.MoveConstToX86reg(0, Reg); + m_Assembler.MoveConstToX86reg(Reg, 0); if (BreakOnUnhandledMemory()) { g_Notify->BreakPoint(__FILE__, __LINE__); @@ -3309,7 +3309,7 @@ void CX86RecompilerOps::LW_KnownAddress(CX86Ops::x86Reg Reg, uint32_t VAddr) case 0x0460002C: m_Assembler.MoveVariableToX86reg(&g_Reg->PI_BSD_DOM2_PGS_REG, "PI_BSD_DOM2_PGS_REG", Reg); break; case 0x04600030: m_Assembler.MoveVariableToX86reg(&g_Reg->PI_BSD_DOM2_RLS_REG, "PI_BSD_DOM2_RLS_REG", Reg); break; default: - m_Assembler.MoveConstToX86reg(0, Reg); + m_Assembler.MoveConstToX86reg(Reg, 0); if (BreakOnUnhandledMemory()) { g_Notify->BreakPoint(__FILE__, __LINE__); @@ -3322,7 +3322,7 @@ void CX86RecompilerOps::LW_KnownAddress(CX86Ops::x86Reg Reg, uint32_t VAddr) case 0x0470000C: m_Assembler.MoveVariableToX86reg(&g_Reg->RI_SELECT_REG, "RI_SELECT_REG", Reg); break; case 0x04700010: m_Assembler.MoveVariableToX86reg(&g_Reg->RI_REFRESH_REG, "RI_REFRESH_REG", Reg); break; default: - m_Assembler.MoveConstToX86reg(0, Reg); + m_Assembler.MoveConstToX86reg(Reg, 0); if (BreakOnUnhandledMemory()) { g_Notify->BreakPoint(__FILE__, __LINE__); @@ -3334,7 +3334,7 @@ void CX86RecompilerOps::LW_KnownAddress(CX86Ops::x86Reg Reg, uint32_t VAddr) { case 0x04800018: m_Assembler.MoveVariableToX86reg(&g_Reg->SI_STATUS_REG, "SI_STATUS_REG", Reg); break; default: - m_Assembler.MoveConstToX86reg(0, Reg); + m_Assembler.MoveConstToX86reg(Reg, 0); if (BreakOnUnhandledMemory()) { g_Notify->BreakPoint(__FILE__, __LINE__); @@ -3372,7 +3372,7 @@ void CX86RecompilerOps::LW_KnownAddress(CX86Ops::x86Reg Reg, uint32_t VAddr) case 0x05000544: m_Assembler.MoveVariableToX86reg(&g_Reg->ASIC_TEST_REG, "ASIC_TEST_REG", Reg); break; case 0x05000548: m_Assembler.MoveVariableToX86reg(&g_Reg->ASIC_TEST_PIN_SEL, "ASIC_TEST_PIN_SEL", Reg); break; default: - m_Assembler.MoveConstToX86reg(0, Reg); + m_Assembler.MoveConstToX86reg(Reg, 0); if (BreakOnUnhandledMemory()) { g_Notify->BreakPoint(__FILE__, __LINE__); @@ -3381,7 +3381,7 @@ void CX86RecompilerOps::LW_KnownAddress(CX86Ops::x86Reg Reg, uint32_t VAddr) } else { - m_Assembler.MoveConstToX86reg((uint32_t)((PAddr & 0xFFFF) << 16) | (PAddr & 0xFFFF), Reg); + m_Assembler.MoveConstToX86reg(Reg, (uint32_t)((PAddr & 0xFFFF) << 16) | (PAddr & 0xFFFF)); } break; case 0x1FC00000: @@ -3403,7 +3403,7 @@ void CX86RecompilerOps::LW_KnownAddress(CX86Ops::x86Reg Reg, uint32_t VAddr) } else { - m_Assembler.MoveConstToX86reg(((PAddr & 0xFFFF) << 16) | (PAddr & 0xFFFF), Reg); + m_Assembler.MoveConstToX86reg(Reg, ((PAddr & 0xFFFF) << 16) | (PAddr & 0xFFFF)); if (BreakOnUnhandledMemory()) { g_Notify->BreakPoint(__FILE__, __LINE__); @@ -3651,7 +3651,7 @@ void CX86RecompilerOps::SWL() m_Assembler.MoveVariableDispToX86Reg((void *)R4300iOp::SWL_SHIFT, "R4300iOp::SWL_SHIFT", shift, OffsetReg, 4); if (IsConst(m_Opcode.rt)) { - m_Assembler.MoveConstToX86reg(GetMipsRegLo(m_Opcode.rt), OffsetReg); + m_Assembler.MoveConstToX86reg(OffsetReg, GetMipsRegLo(m_Opcode.rt)); } else if (IsMapped(m_Opcode.rt)) { @@ -3817,7 +3817,7 @@ void CX86RecompilerOps::SWR() m_Assembler.MoveVariableDispToX86Reg((void *)R4300iOp::SWR_SHIFT, "R4300iOp::SWR_SHIFT", shift, OffsetReg, 4); if (IsConst(m_Opcode.rt)) { - m_Assembler.MoveConstToX86reg(GetMipsRegLo(m_Opcode.rt), OffsetReg); + m_Assembler.MoveConstToX86reg(OffsetReg, GetMipsRegLo(m_Opcode.rt)); } else if (IsMapped(m_Opcode.rt)) { @@ -4688,7 +4688,7 @@ void CX86RecompilerOps::SPECIAL_DSRLV() return; } Map_TempReg(CX86Ops::x86_ECX, -1, false, false); - m_Assembler.MoveConstToX86reg(Shift, CX86Ops::x86_ECX); + m_Assembler.MoveConstToX86reg(CX86Ops::x86_ECX, Shift); Map_GPR_64bit(m_Opcode.rd, m_Opcode.rt); if ((Shift & 0x20) == 0x20) { @@ -4963,7 +4963,7 @@ void CX86RecompilerOps::SPECIAL_DIV() if (IsConst(m_Opcode.rs)) { - m_Assembler.MoveConstToX86reg(GetMipsRegLo_S(m_Opcode.rs) >> 31, CX86Ops::x86_EDX); + m_Assembler.MoveConstToX86reg(CX86Ops::x86_EDX, GetMipsRegLo_S(m_Opcode.rs) >> 31); } else { @@ -8628,12 +8628,12 @@ void CX86RecompilerOps::SyncRegState(const CRegInfo & SyncTo) m_RegWorkingSet.SetX86Mapped(GetIndexFromX86Reg(GetMipsRegMapLo(i)), CRegInfo::NotMapped); break; case CRegInfo::STATE_CONST_64: - m_Assembler.MoveConstToX86reg(GetMipsRegHi(i), x86RegHi); - m_Assembler.MoveConstToX86reg(GetMipsRegLo(i), Reg); + m_Assembler.MoveConstToX86reg(x86RegHi, GetMipsRegHi(i)); + m_Assembler.MoveConstToX86reg(Reg, GetMipsRegLo(i)); break; case CRegInfo::STATE_CONST_32_SIGN: - m_Assembler.MoveConstToX86reg(GetMipsRegLo_S(i) >> 31, x86RegHi); - m_Assembler.MoveConstToX86reg(GetMipsRegLo(i), Reg); + m_Assembler.MoveConstToX86reg(x86RegHi, GetMipsRegLo_S(i) >> 31); + m_Assembler.MoveConstToX86reg(Reg, GetMipsRegLo(i)); break; default: m_CodeBlock.Log("Do something with states in SyncRegState\nSTATE_MAPPED_64\n%d", GetMipsRegState(i)); @@ -8656,7 +8656,7 @@ void CX86RecompilerOps::SyncRegState(const CRegInfo & SyncTo) switch (GetMipsRegState(i)) { case CRegInfo::STATE_UNKNOWN: m_Assembler.MoveVariableToX86reg(&_GPR[i].UW[0], CRegName::GPR_Lo[i], Reg); break; - case CRegInfo::STATE_CONST_32_SIGN: m_Assembler.MoveConstToX86reg(GetMipsRegLo(i), Reg); break; + case CRegInfo::STATE_CONST_32_SIGN: m_Assembler.MoveConstToX86reg(Reg, GetMipsRegLo(i)); break; case CRegInfo::STATE_MAPPED_32_SIGN: m_Assembler.MoveX86RegToX86Reg(Reg, GetMipsRegMapLo(i)); m_RegWorkingSet.SetX86Mapped(GetIndexFromX86Reg(GetMipsRegMapLo(i)), CRegInfo::NotMapped); @@ -8718,7 +8718,7 @@ void CX86RecompilerOps::SyncRegState(const CRegInfo & SyncTo) m_CodeBlock.Log("%s: %X", CRegName::GPR[i], GetMipsRegLo_S(i)); g_Notify->BreakPoint(__FILE__, __LINE__); } - m_Assembler.MoveConstToX86reg(GetMipsRegLo(i), Reg); + m_Assembler.MoveConstToX86reg(Reg, GetMipsRegLo(i)); break; default: m_CodeBlock.Log("Do something with states in SyncRegState\nSTATE_MAPPED_32_ZERO\n%d", GetMipsRegState(i)); @@ -9494,8 +9494,8 @@ void CX86RecompilerOps::CompileExit(uint32_t JumpPC, uint32_t TargetPC, CRegInfo // m_Assembler.MoveVariableToX86reg((uint8_t *)RDRAM + pAddr,"RDRAM + pAddr",CX86Ops::x86_EAX); // Jump2 = nullptr; // } else { - // m_Assembler.MoveConstToX86reg((TargetPC >> 12),CX86Ops::x86_ECX); - // m_Assembler.MoveConstToX86reg(TargetPC,CX86Ops::x86_EBX); + // m_Assembler.MoveConstToX86reg(CX86Ops::x86_ECX, (TargetPC >> 12)); + // m_Assembler.MoveConstToX86reg(CX86Ops::x86_EBX, TargetPC); // m_Assembler.MoveVariableDispToX86Reg(TLB_ReadMap,"TLB_ReadMap",CX86Ops::x86_ECX,CX86Ops::x86_ECX,4); // TestX86RegToX86Reg(CX86Ops::x86_ECX,CX86Ops::x86_ECX); // m_Assembler.JeLabel8("NoTlbEntry",0); @@ -9521,8 +9521,8 @@ void CX86RecompilerOps::CompileExit(uint32_t JumpPC, uint32_t TargetPC, CRegInfo } else if (LookUpMode() == FuncFind_VirtualLookup) { - m_Assembler.MoveConstToX86reg(TargetPC, CX86Ops::x86_EDX); - m_Assembler.MoveConstToX86reg((uint32_t)&m_Functions, CX86Ops::x86_ECX); + m_Assembler.MoveConstToX86reg(CX86Ops::x86_EDX, TargetPC); + m_Assembler.MoveConstToX86reg(CX86Ops::x86_ECX, (uint32_t)&m_Functions); m_Assembler.CallFunc(AddressOf(&CFunctionMap::CompilerFindFunction), "CFunctionMap::CompilerFindFunction"); m_Assembler.MoveX86RegToX86Reg(CX86Ops::x86_ECX, CX86Ops::x86_EAX); JecxzLabel8("NullPointer", 0); @@ -9545,8 +9545,8 @@ void CX86RecompilerOps::CompileExit(uint32_t JumpPC, uint32_t TargetPC, CRegInfo } else { - m_Assembler.MoveConstToX86reg((TargetPC >> 12), CX86Ops::x86_ECX); - m_Assembler.MoveConstToX86reg(TargetPC, CX86Ops::x86_EBX); + m_Assembler.MoveConstToX86reg(CX86Ops::x86_ECX, (TargetPC >> 12)); + m_Assembler.MoveConstToX86reg(CX86Ops::x86_EBX, TargetPC); m_Assembler.MoveVariableDispToX86Reg(TLB_ReadMap, "TLB_ReadMap", CX86Ops::x86_ECX, CX86Ops::x86_ECX, 4); TestX86RegToX86Reg(CX86Ops::x86_ECX, CX86Ops::x86_ECX); m_Assembler.JeLabel8("NoTlbEntry", 0); @@ -9778,7 +9778,7 @@ void CX86RecompilerOps::CompileLoadMemoryValue(CX86Ops::x86Reg AddressReg, CX86O m_Assembler.TestX86ByteRegToX86Reg(CX86Ops::x86_AL, CX86Ops::x86_AL); m_RegWorkingSet.AfterCallDirect(); CompileExit((uint32_t)-1, (uint32_t)-1, m_RegWorkingSet, ExitReason_NormalNoSysCheck, false, &CX86Ops::JeLabel32); - m_Assembler.MoveConstToX86reg((uint32_t)&m_TempValue32, TempReg); + m_Assembler.MoveConstToX86reg(TempReg, (uint32_t)&m_TempValue32); m_Assembler.SubX86RegToX86Reg(TempReg, AddressReg); } else if (ValueSize == 16) @@ -9790,7 +9790,7 @@ void CX86RecompilerOps::CompileLoadMemoryValue(CX86Ops::x86Reg AddressReg, CX86O m_Assembler.TestX86ByteRegToX86Reg(CX86Ops::x86_AL, CX86Ops::x86_AL); m_RegWorkingSet.AfterCallDirect(); CompileExit((uint32_t)-1, (uint32_t)-1, m_RegWorkingSet, ExitReason_NormalNoSysCheck, false, &CX86Ops::JeLabel32); - m_Assembler.MoveConstToX86reg((uint32_t)&m_TempValue32, TempReg); + m_Assembler.MoveConstToX86reg(TempReg, (uint32_t)&m_TempValue32); m_Assembler.SubX86RegToX86Reg(TempReg, AddressReg); m_Assembler.XorConstToX86Reg(AddressReg, 2); } @@ -9803,7 +9803,7 @@ void CX86RecompilerOps::CompileLoadMemoryValue(CX86Ops::x86Reg AddressReg, CX86O m_Assembler.TestX86ByteRegToX86Reg(CX86Ops::x86_AL, CX86Ops::x86_AL); m_RegWorkingSet.AfterCallDirect(); CompileExit((uint32_t)-1, (uint32_t)-1, m_RegWorkingSet, ExitReason_NormalNoSysCheck, false, &CX86Ops::JeLabel32); - m_Assembler.MoveConstToX86reg((uint32_t)&m_TempValue32, TempReg); + m_Assembler.MoveConstToX86reg(TempReg, (uint32_t)&m_TempValue32); m_Assembler.SubX86RegToX86Reg(TempReg, AddressReg); m_Assembler.XorConstToX86Reg(AddressReg, 3); } @@ -10079,7 +10079,7 @@ void CX86RecompilerOps::CompileStoreMemoryValue(CX86Ops::x86Reg AddressReg, CX86 } else { - m_Assembler.MoveX86regToX86regPointer(TempReg, ValueReg, AddressReg); + m_Assembler.MoveX86regToX86regPointer(AddressReg, TempReg, ValueReg ); } } else if (ValueSize == 64) @@ -10092,9 +10092,9 @@ void CX86RecompilerOps::CompileStoreMemoryValue(CX86Ops::x86Reg AddressReg, CX86 } else { - m_Assembler.MoveX86regToX86regPointer(TempReg, ValueRegHi, AddressReg); + m_Assembler.MoveX86regToX86regPointer(AddressReg, TempReg, ValueRegHi); m_Assembler.AddConstToX86Reg(AddressReg, 4); - m_Assembler.MoveX86regToX86regPointer(TempReg, ValueReg, AddressReg); + m_Assembler.MoveX86regToX86regPointer(AddressReg, TempReg, ValueReg); } } else @@ -10115,7 +10115,7 @@ void CX86RecompilerOps::SB_Const(uint32_t Value, uint32_t VAddr) if (VAddr < 0x80000000 || VAddr >= 0xC0000000) { CX86Ops::x86Reg AddressReg = Map_TempReg(CX86Ops::x86_Unknown, -1, false, false); - m_Assembler.MoveConstToX86reg(VAddr, AddressReg); + m_Assembler.MoveConstToX86reg(AddressReg, VAddr); CompileStoreMemoryValue(AddressReg, CX86Ops::x86_Unknown, CX86Ops::x86_Unknown, Value, 8); return; } @@ -10144,7 +10144,7 @@ void CX86RecompilerOps::SB_Const(uint32_t Value, uint32_t VAddr) if (CGameSettings::bSMM_StoreInstruc()) { CX86Ops::x86Reg AddressReg = Map_TempReg(CX86Ops::x86_Unknown, -1, false, false); - m_Assembler.MoveConstToX86reg(VAddr, AddressReg); + m_Assembler.MoveConstToX86reg(AddressReg, VAddr); CompileStoreMemoryValue(AddressReg, CX86Ops::x86_Unknown, CX86Ops::x86_Unknown, Value, 8); } else if (PAddr < g_MMU->RdramSize()) @@ -10192,7 +10192,7 @@ void CX86RecompilerOps::SB_Register(CX86Ops::x86Reg Reg, uint32_t VAddr) { m_RegWorkingSet.SetX86Protected(GetIndexFromX86Reg(Reg), true); CX86Ops::x86Reg AddressReg = Map_TempReg(CX86Ops::x86_Unknown, -1, false, false); - m_Assembler.MoveConstToX86reg(VAddr, AddressReg); + m_Assembler.MoveConstToX86reg(AddressReg, VAddr); CompileStoreMemoryValue(AddressReg, Reg, CX86Ops::x86_Unknown, 0, 8); return; } @@ -10221,7 +10221,7 @@ void CX86RecompilerOps::SB_Register(CX86Ops::x86Reg Reg, uint32_t VAddr) if (CGameSettings::bSMM_StoreInstruc()) { CX86Ops::x86Reg AddressReg = Map_TempReg(CX86Ops::x86_Unknown, -1, false, false); - m_Assembler.MoveConstToX86reg(VAddr, AddressReg); + m_Assembler.MoveConstToX86reg(AddressReg, VAddr); CompileStoreMemoryValue(AddressReg, Reg, CX86Ops::x86_Unknown, 0, 8); } else if (PAddr < g_MMU->RdramSize()) @@ -10242,7 +10242,7 @@ void CX86RecompilerOps::SH_Const(uint32_t Value, uint32_t VAddr) if (VAddr < 0x80000000 || VAddr >= 0xC0000000) { CX86Ops::x86Reg AddressReg = Map_TempReg(CX86Ops::x86_Unknown, -1, false, false); - m_Assembler.MoveConstToX86reg(VAddr, AddressReg); + m_Assembler.MoveConstToX86reg(AddressReg, VAddr); CompileStoreMemoryValue(AddressReg, CX86Ops::x86_Unknown, CX86Ops::x86_Unknown, (uint16_t)Value, 16); return; } @@ -10271,7 +10271,7 @@ void CX86RecompilerOps::SH_Const(uint32_t Value, uint32_t VAddr) if (CGameSettings::bSMM_StoreInstruc()) { CX86Ops::x86Reg AddressReg = Map_TempReg(CX86Ops::x86_Unknown, -1, false, false); - m_Assembler.MoveConstToX86reg(VAddr, AddressReg); + m_Assembler.MoveConstToX86reg(AddressReg, VAddr); CompileStoreMemoryValue(AddressReg, CX86Ops::x86_Unknown, CX86Ops::x86_Unknown, (uint16_t)Value, 16); } else if (PAddr < g_MMU->RdramSize()) @@ -10303,7 +10303,7 @@ void CX86RecompilerOps::SH_Register(CX86Ops::x86Reg Reg, uint32_t VAddr) m_RegWorkingSet.SetX86Protected(GetIndexFromX86Reg(Reg), true); CX86Ops::x86Reg AddressReg = Map_TempReg(CX86Ops::x86_Unknown, -1, false, false); - m_Assembler.MoveConstToX86reg(VAddr, AddressReg); + m_Assembler.MoveConstToX86reg(AddressReg, VAddr); CompileStoreMemoryValue(AddressReg, Reg, CX86Ops::x86_Unknown, 0, 16); } else @@ -10324,7 +10324,7 @@ void CX86RecompilerOps::SH_Register(CX86Ops::x86Reg Reg, uint32_t VAddr) if (CGameSettings::bSMM_StoreInstruc()) { CX86Ops::x86Reg AddressReg = Map_TempReg(CX86Ops::x86_Unknown, -1, false, false); - m_Assembler.MoveConstToX86reg(VAddr, AddressReg); + m_Assembler.MoveConstToX86reg(AddressReg, VAddr); CompileStoreMemoryValue(AddressReg, Reg, CX86Ops::x86_Unknown, 0, 16); } else if (PAddr < g_MMU->RdramSize()) @@ -10357,7 +10357,7 @@ void CX86RecompilerOps::SW_Const(uint32_t Value, uint32_t VAddr) if (VAddr < 0x80000000 || VAddr >= 0xC0000000) { CX86Ops::x86Reg AddressReg = Map_TempReg(CX86Ops::x86_Unknown, -1, false, false); - m_Assembler.MoveConstToX86reg(VAddr, AddressReg); + m_Assembler.MoveConstToX86reg(AddressReg, VAddr); CompileStoreMemoryValue(AddressReg, CX86Ops::x86_Unknown, CX86Ops::x86_Unknown, Value, 32); return; } @@ -10386,7 +10386,7 @@ void CX86RecompilerOps::SW_Const(uint32_t Value, uint32_t VAddr) if (CGameSettings::bSMM_StoreInstruc()) { CX86Ops::x86Reg AddressReg = Map_TempReg(CX86Ops::x86_Unknown, -1, false, false); - m_Assembler.MoveConstToX86reg(VAddr, AddressReg); + m_Assembler.MoveConstToX86reg(AddressReg, VAddr); CompileStoreMemoryValue(AddressReg, CX86Ops::x86_Unknown, CX86Ops::x86_Unknown, Value, 32); } else if (PAddr < g_MMU->RdramSize()) @@ -10823,7 +10823,7 @@ void CX86RecompilerOps::SW_Register(CX86Ops::x86Reg Reg, uint32_t VAddr) { m_RegWorkingSet.SetX86Protected(GetIndexFromX86Reg(Reg), true); CX86Ops::x86Reg AddressReg = Map_TempReg(CX86Ops::x86_Unknown, -1, false, false); - m_Assembler.MoveConstToX86reg(VAddr, AddressReg); + m_Assembler.MoveConstToX86reg(AddressReg, VAddr); CompileStoreMemoryValue(AddressReg, Reg, CX86Ops::x86_Unknown, 0, 32); return; } @@ -10854,7 +10854,7 @@ void CX86RecompilerOps::SW_Register(CX86Ops::x86Reg Reg, uint32_t VAddr) if (CGameSettings::bSMM_StoreInstruc()) { CX86Ops::x86Reg AddressReg = Map_TempReg(CX86Ops::x86_Unknown, -1, false, false); - m_Assembler.MoveConstToX86reg(VAddr, AddressReg); + m_Assembler.MoveConstToX86reg(AddressReg, VAddr); CompileStoreMemoryValue(AddressReg, Reg, CX86Ops::x86_Unknown, 0, 32); } else if (PAddr < g_MMU->RdramSize()) @@ -10893,7 +10893,7 @@ void CX86RecompilerOps::SW_Register(CX86Ops::x86Reg Reg, uint32_t VAddr) if (CGameSettings::bSMM_StoreInstruc()) { CX86Ops::x86Reg AddressReg = Map_TempReg(CX86Ops::x86_Unknown, -1, false, false); - m_Assembler.MoveConstToX86reg(VAddr, AddressReg); + m_Assembler.MoveConstToX86reg(AddressReg, VAddr); CompileStoreMemoryValue(AddressReg, Reg, CX86Ops::x86_Unknown, 0, 32); } else if (PAddr < 0x04001000) @@ -11234,7 +11234,7 @@ void CX86RecompilerOps::ResetMemoryStack() } else { - m_Assembler.MoveConstToX86reg(GetMipsRegLo(MipsReg), Reg); + m_Assembler.MoveConstToX86reg(Reg, GetMipsRegLo(MipsReg)); } } diff --git a/Source/Project64-core/N64System/Recompiler/x86/x86RegInfo.cpp b/Source/Project64-core/N64System/Recompiler/x86/x86RegInfo.cpp index af5fba047..69e456891 100644 --- a/Source/Project64-core/N64System/Recompiler/x86/x86RegInfo.cpp +++ b/Source/Project64-core/N64System/Recompiler/x86/x86RegInfo.cpp @@ -777,7 +777,7 @@ void CX86RegInfo::Map_GPR_32bit(int32_t MipsReg, bool SignValue, int32_t MipsReg } else { - m_Assembler.MoveConstToX86reg(GetMipsRegLo(MipsRegToLoad), Reg); + m_Assembler.MoveConstToX86reg(Reg, GetMipsRegLo(MipsRegToLoad)); } } else if (MipsRegToLoad == 0) @@ -901,18 +901,18 @@ void CX86RegInfo::Map_GPR_64bit(int32_t MipsReg, int32_t MipsRegToLoad) { if (IsSigned(MipsRegToLoad)) { - m_Assembler.MoveConstToX86reg(GetMipsRegLo_S(MipsRegToLoad) >> 31, x86Hi); + m_Assembler.MoveConstToX86reg(x86Hi, GetMipsRegLo_S(MipsRegToLoad) >> 31); } else { - m_Assembler.MoveConstToX86reg(0, x86Hi); + m_Assembler.MoveConstToX86reg(x86Hi, 0); } } else { - m_Assembler.MoveConstToX86reg(GetMipsRegHi(MipsRegToLoad), x86Hi); + m_Assembler.MoveConstToX86reg(x86Hi, GetMipsRegHi(MipsRegToLoad)); } - m_Assembler.MoveConstToX86reg(GetMipsRegLo(MipsRegToLoad), x86lo); + m_Assembler.MoveConstToX86reg(x86lo, GetMipsRegLo(MipsRegToLoad)); } } else if (MipsRegToLoad == 0) @@ -1087,18 +1087,18 @@ CX86Ops::x86Reg CX86RegInfo::Map_TempReg(CX86Ops::x86Reg Reg, int32_t MipsReg, b } else { - m_Assembler.MoveConstToX86reg(0, Reg); + m_Assembler.MoveConstToX86reg(Reg, 0); } } else { if (Is64Bit(MipsReg)) { - m_Assembler.MoveConstToX86reg(GetMipsRegHi(MipsReg), Reg); + m_Assembler.MoveConstToX86reg(Reg, GetMipsRegHi(MipsReg)); } else { - m_Assembler.MoveConstToX86reg(GetMipsRegLo_S(MipsReg) >> 31, Reg); + m_Assembler.MoveConstToX86reg(Reg, GetMipsRegLo_S(MipsReg) >> 31); } } } @@ -1114,7 +1114,7 @@ CX86Ops::x86Reg CX86RegInfo::Map_TempReg(CX86Ops::x86Reg Reg, int32_t MipsReg, b } else { - m_Assembler.MoveConstToX86reg(GetMipsRegLo(MipsReg), Reg); + m_Assembler.MoveConstToX86reg(Reg, GetMipsRegLo(MipsReg)); } } } @@ -1517,7 +1517,7 @@ void CX86RegInfo::WriteBackRegisters() } if (!bEsiSign && (GetMipsRegLo(count) & 0x80000000)) { - m_Assembler.MoveConstToX86reg(0xFFFFFFFF, CX86Ops::x86_ESI); + m_Assembler.MoveConstToX86reg(CX86Ops::x86_ESI, 0xFFFFFFFF); bEsiSign = true; } if ((GetMipsRegLo(count) & 0x80000000) != 0) @@ -1548,7 +1548,7 @@ void CX86RegInfo::WriteBackRegisters() { if (!bEsiSign) { - m_Assembler.MoveConstToX86reg(0xFFFFFFFF, CX86Ops::x86_ESI); + m_Assembler.MoveConstToX86reg(CX86Ops::x86_ESI, 0xFFFFFFFF); bEsiSign = true; } } @@ -1598,7 +1598,7 @@ void CX86RegInfo::WriteBackRegisters() } if (GetMipsRegLo(count) == 0xFFFFFFFF || GetMipsRegHi(count) == 0xFFFFFFFF) { - m_Assembler.MoveConstToX86reg(0xFFFFFFFF, CX86Ops::x86_ESI); + m_Assembler.MoveConstToX86reg(CX86Ops::x86_ESI, 0xFFFFFFFF); bEsiSign = true; } diff --git a/Source/Project64-core/N64System/Recompiler/x86/x86ops.cpp b/Source/Project64-core/N64System/Recompiler/x86/x86ops.cpp index 63d86a116..cc4a732e5 100644 --- a/Source/Project64-core/N64System/Recompiler/x86/x86ops.cpp +++ b/Source/Project64-core/N64System/Recompiler/x86/x86ops.cpp @@ -203,7 +203,7 @@ void CX86Ops::CallFunc(uint32_t FunctPtr, const char * FunctName) #ifdef _MSC_VER void CX86Ops::CallThis(uint32_t ThisPtr, uint32_t FunctPtr, char * FunctName, uint32_t /*StackSize*/) { - MoveConstToX86reg(ThisPtr, CX86Ops::x86_ECX); + MoveConstToX86reg(CX86Ops::x86_ECX, ThisPtr); CallFunc(FunctPtr, FunctName); } #else @@ -925,16 +925,16 @@ void CX86Ops::MoveConstToX86Pointer(uint32_t Const, x86Reg X86Pointer) AddCode32(Const); } -void CX86Ops::MoveConstToX86reg(uint32_t Const, x86Reg reg) +void CX86Ops::MoveConstToX86reg(x86Reg Reg, uint32_t Const) { if (Const == 0) { - XorX86RegToX86Reg(reg, reg); + XorX86RegToX86Reg(Reg, Reg); } else { - CodeLog(" mov %s, %Xh", x86_Name(reg), Const); - AddCode16((uint16_t)(0xC0C7 + (reg * 0x100))); + CodeLog(" mov %s, %Xh", x86_Name(Reg), Const); + AddCode16((uint16_t)(0xC0C7 + (Reg * 0x100))); AddCode32(Const); } } diff --git a/Source/Project64-core/N64System/Recompiler/x86/x86ops.h b/Source/Project64-core/N64System/Recompiler/x86/x86ops.h index e94e8e00a..f08117908 100644 --- a/Source/Project64-core/N64System/Recompiler/x86/x86ops.h +++ b/Source/Project64-core/N64System/Recompiler/x86/x86ops.h @@ -140,7 +140,7 @@ public: void MoveConstToN64MemDisp(uint32_t Const, x86Reg AddrReg, uint8_t Disp); void MoveConstToVariable(uint32_t Const, void * Variable, const char * VariableName); void MoveConstToX86Pointer(uint32_t Const, x86Reg X86Pointer); - void MoveConstToX86reg(uint32_t Const, x86Reg reg); + void MoveConstToX86reg(x86Reg Reg, uint32_t Const); void MoveConstToX86regPointer(uint32_t Const, x86Reg AddrReg1, x86Reg AddrReg2); void MoveN64MemDispToX86reg(x86Reg reg, x86Reg AddrReg, uint8_t Disp); void MoveN64MemToX86reg(x86Reg reg, x86Reg AddrReg);