Fix ternary condition for 32/64 bit reg swaps (#164)

This commit is contained in:
Michael R Fairhurst
2017-03-21 02:22:40 -07:00
committed by Petr Kobalicek
parent 6282179662
commit 81a78351b3

View File

@@ -259,8 +259,8 @@ Error X86RAPass::emitSwapGp(VirtReg* dstReg, VirtReg* srcReg, uint32_t dstPhysId
ASMJIT_ASSERT(srcPhysId != Globals::kInvalidRegId); ASMJIT_ASSERT(srcPhysId != Globals::kInvalidRegId);
uint32_t is64 = std::max(dstReg->getTypeId(), srcReg->getTypeId()) >= TypeId::kI64; uint32_t is64 = std::max(dstReg->getTypeId(), srcReg->getTypeId()) >= TypeId::kI64;
uint32_t sign = is64 ? uint32_t(X86RegTraits<X86Reg::kRegGpd>::kSignature) uint32_t sign = is64 ? uint32_t(X86RegTraits<X86Reg::kRegGpq>::kSignature)
: uint32_t(X86RegTraits<X86Reg::kRegGpq>::kSignature); : uint32_t(X86RegTraits<X86Reg::kRegGpd>::kSignature);
X86Reg a = X86Reg::fromSignature(sign, dstPhysId); X86Reg a = X86Reg::fromSignature(sign, dstPhysId);
X86Reg b = X86Reg::fromSignature(sign, srcPhysId); X86Reg b = X86Reg::fromSignature(sign, srcPhysId);