| 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; | 
| } | 
|  |