Fix lclVar move node type inserted in lsra phase
authorHyeongseok Oh <hseok82.oh@samsung.com>
Thu, 10 Aug 2017 01:55:51 +0000 (10:55 +0900)
committerHyeongseok Oh <hseok82.oh@samsung.com>
Thu, 10 Aug 2017 01:55:51 +0000 (10:55 +0900)
When we try to insert lclVal move node (load, store) on lsra phase,
fix type as TYP_INT when size is smaller than TYP_INT

src/jit/lsra.cpp

index 28617b9..09636f4 100644 (file)
@@ -9209,6 +9209,11 @@ void LinearScan::insertMove(
     GenTreePtr src              = compiler->gtNewLclvNode(lclNum, varDsc->TypeGet());
     src->gtLsraInfo.isLsraAdded = true;
 
+    if (varDsc->lvNormalizeOnStore())
+    {
+        src->gtType = TYP_INT;
+    }
+
     // There are three cases we need to handle:
     // - We are loading a lclVar from the stack.
     // - We are storing a lclVar to the stack.