diff options
Diffstat (limited to 'packaging/0006-Set-local-variables-as-addr-exposed-if-it-appears-in.patch')
-rw-r--r-- | packaging/0006-Set-local-variables-as-addr-exposed-if-it-appears-in.patch | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/packaging/0006-Set-local-variables-as-addr-exposed-if-it-appears-in.patch b/packaging/0006-Set-local-variables-as-addr-exposed-if-it-appears-in.patch new file mode 100644 index 0000000000..e8b06f412a --- /dev/null +++ b/packaging/0006-Set-local-variables-as-addr-exposed-if-it-appears-in.patch @@ -0,0 +1,49 @@ +From 49b89a063fc18e2000a978ed0e0e0e2aeab42f8a Mon Sep 17 00:00:00 2001 +From: Jonghyun Park <parjong@gmail.com> +Date: Wed, 14 Jun 2017 07:05:12 +0900 +Subject: [PATCH 06/23] Set local variables as addr-exposed if it appears in + ADDR expression + +--- + src/jit/morph.cpp | 4 +--- + 1 file changed, 1 insertion(+), 3 deletions(-) + +diff --git a/src/jit/morph.cpp b/src/jit/morph.cpp +index 27a1dae..629dc83 100644 +--- a/src/jit/morph.cpp ++++ b/src/jit/morph.cpp +@@ -8921,7 +8921,6 @@ GenTreePtr Compiler::fgMorphOneAsgBlockOp(GenTreePtr tree) + } + else + { +-#ifndef LEGACY_BACKEND + + // The source argument of the copyblk can potentially + // be accessed only through indir(addr(lclVar)) +@@ -8931,6 +8930,7 @@ GenTreePtr Compiler::fgMorphOneAsgBlockOp(GenTreePtr tree) + // we don't delete it as a dead store later on. + unsigned lclVarNum = lclVarTree->gtLclVarCommon.gtLclNum; + lvaTable[lclVarNum].lvAddrExposed = true; ++#ifndef LEGACY_BACKEND + lvaSetVarDoNotEnregister(lclVarNum DEBUGARG(DNER_AddrExposed)); + + #else // LEGACY_BACKEND +@@ -10301,7 +10301,6 @@ GenTreePtr Compiler::fgMorphCopyBlock(GenTreePtr tree) + + tree = gtNewAssignNode(gtNewLclvNode(addrSpillTemp, TYP_BYREF), addrSpill); + +-#ifndef LEGACY_BACKEND + // If we are assigning the address of a LclVar here + // liveness does not account for this kind of address taken use. + // +@@ -10319,7 +10318,6 @@ GenTreePtr Compiler::fgMorphCopyBlock(GenTreePtr tree) + lvaSetVarDoNotEnregister(lclVarNum DEBUGARG(DNER_AddrExposed)); + } + } +-#endif // !LEGACY_BACKEND + } + + _AssignFields: +-- +1.9.1 + |