blob: e8b06f412afe5f5039ed4a1f5331db500767aa1a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
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
|