Index: src/IceTargetLoweringX8632.cpp |
diff --git a/src/IceTargetLoweringX8632.cpp b/src/IceTargetLoweringX8632.cpp |
index 5d8ad3fb1fbdb0ca15f7e48c008c75ac0dd3d617..2a1a0b7bf7a8fa4b48c94487f76d7f913c025cb3 100644 |
--- a/src/IceTargetLoweringX8632.cpp |
+++ b/src/IceTargetLoweringX8632.cpp |
@@ -263,10 +263,9 @@ void TargetX8632::lowerCall(const InstCall *Instr) { |
// Assign the result of the call to Dest. |
if (ReturnReg) { |
if (ReturnRegHi) { |
- assert(Dest->getType() == IceType_i64); |
- split64(Dest); |
- Variable *DestLo = Dest->getLo(); |
- Variable *DestHi = Dest->getHi(); |
+ auto *Dest64On32 = llvm::cast<Variable64On32>(Dest); |
+ Variable *DestLo = Dest64On32->getLo(); |
+ Variable *DestHi = Dest64On32->getHi(); |
_mov(DestLo, ReturnReg); |
_mov(DestHi, ReturnRegHi); |
} else { |