summaryrefslogtreecommitdiff
path: root/src/jit/codegenlinear.cpp
diff options
context:
space:
mode:
authorCarol Eidt <carol.eidt@microsoft.com>2016-12-09 11:22:41 -0800
committerCarol Eidt <carol.eidt@microsoft.com>2017-01-13 14:24:47 -0800
commit751bc601e5f7fc9debaeb19d5b6bba7c11b5c0d8 (patch)
tree2067baad856da635c92d05236839c7b6bfe226e7 /src/jit/codegenlinear.cpp
parent9d01c0e02ea49a2cc12ddfb520964285402a775c (diff)
downloadcoreclr-751bc601e5f7fc9debaeb19d5b6bba7c11b5c0d8.tar.gz
coreclr-751bc601e5f7fc9debaeb19d5b6bba7c11b5c0d8.tar.bz2
coreclr-751bc601e5f7fc9debaeb19d5b6bba7c11b5c0d8.zip
Don't treat spill temps as contained
Make Contained refer only to whether code is only generated for a node as part of its parent. Spill temps that are used from memory are not contained, as code is generated for them. Add methods to indicate whether an operand is used from register, memory (including spill), or spill specifically, for use by codegen in distinguishing these cases.
Diffstat (limited to 'src/jit/codegenlinear.cpp')
-rw-r--r--src/jit/codegenlinear.cpp12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/jit/codegenlinear.cpp b/src/jit/codegenlinear.cpp
index 9cb5204d8d..415d6cf552 100644
--- a/src/jit/codegenlinear.cpp
+++ b/src/jit/codegenlinear.cpp
@@ -1210,13 +1210,13 @@ void CodeGen::genConsumeRegs(GenTree* tree)
}
#endif // !defined(_TARGET_64BIT_)
- if (tree->isContained())
+ if (tree->isUsedFromSpillTemp())
{
- if (tree->isContainedSpillTemp())
- {
- // spill temps are un-tracked and hence no need to update life
- }
- else if (tree->isIndir())
+ // spill temps are un-tracked and hence no need to update life
+ }
+ else if (tree->isContained())
+ {
+ if (tree->isIndir())
{
genConsumeAddress(tree->AsIndir()->Addr());
}