| Index: src/IceOperand.cpp
 | 
| diff --git a/src/IceOperand.cpp b/src/IceOperand.cpp
 | 
| index 66321c29f1c7e4f5347f858a63e939ce9bbd855d..e66a995d788dfdf672946739f9553dad44fc26d1 100644
 | 
| --- a/src/IceOperand.cpp
 | 
| +++ b/src/IceOperand.cpp
 | 
| @@ -131,7 +131,7 @@ IceString Variable::getName(const Cfg *Func) const {
 | 
|    return "__" + std::to_string(getIndex());
 | 
|  }
 | 
|  
 | 
| -Variable *Variable::asType(Type Ty) {
 | 
| +const Variable *Variable::asType(Type Ty, int32_t NewRegNum) const {
 | 
|    // Note: This returns a Variable, even if the "this" object is a subclass of
 | 
|    // Variable.
 | 
|    if (!BuildDefs::dump() || getType() == Ty)
 | 
| @@ -139,7 +139,7 @@ Variable *Variable::asType(Type Ty) {
 | 
|    Variable *V = new (getCurrentCfgAllocator()->Allocate<Variable>())
 | 
|        Variable(kVariable, Ty, Number);
 | 
|    V->NameIndex = NameIndex;
 | 
| -  V->RegNum = RegNum;
 | 
| +  V->RegNum = NewRegNum == NoRegister ? RegNum : NewRegNum;
 | 
|    V->StackOffset = StackOffset;
 | 
|    return V;
 | 
|  }
 | 
| 
 |