Mark compTypeCtxtArg as lvOnFrame
authorCarol Eidt <carol.eidt@microsoft.com>
Sat, 20 Feb 2016 05:55:47 +0000 (21:55 -0800)
committerCarol Eidt <carol.eidt@microsoft.com>
Sat, 20 Feb 2016 05:55:47 +0000 (21:55 -0800)
The type context argument must be initialized to lvOnFrame if it is
not a register argument (as on x86, since it is passed after user
arguments).

Commit migrated from https://github.com/dotnet/coreclr/commit/4e7444549e94d6c4857448fe74434a0ae7fb8272

src/coreclr/src/jit/lclvars.cpp

index 15bc1a2..ae05f01 100644 (file)
@@ -991,6 +991,14 @@ void                Compiler::lvaInitGenericsCtxt(InitVarDscInfo *  varDscInfo)
             }
 #endif
         }
+#ifndef LEGACY_BACKEND
+        else
+        {
+            // For the RyuJIT backend, we need to mark these as being on the stack,
+            // as this is not done elsewhere in the case that canEnreg returns false.
+            varDsc->lvOnFrame = true;
+        }
+#endif // !LEGACY_BACKEND
 
         compArgSize += TARGET_POINTER_SIZE;