diff options
author | Carol Eidt <carol.eidt@microsoft.com> | 2016-12-09 11:22:41 -0800 |
---|---|---|
committer | Carol Eidt <carol.eidt@microsoft.com> | 2017-01-13 14:24:47 -0800 |
commit | 751bc601e5f7fc9debaeb19d5b6bba7c11b5c0d8 (patch) | |
tree | 2067baad856da635c92d05236839c7b6bfe226e7 /src/jit/codegenlinear.cpp | |
parent | 9d01c0e02ea49a2cc12ddfb520964285402a775c (diff) | |
download | coreclr-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.cpp | 12 |
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()); } |