summaryrefslogtreecommitdiff
path: root/src/gcdump
diff options
context:
space:
mode:
authorHanjoung Lee <waterets@gmail.com>2017-06-16 09:53:44 +0900
committerBruce Forstall <brucefo@microsoft.com>2017-06-15 17:53:44 -0700
commit0c96db33ddb7d784cda9bd0368756046f436e8bc (patch)
treea711629ae4727ceb4d7a2b1477334eb3db3356e1 /src/gcdump
parent5580664eb419cb868a3669253d5d9666a3def641 (diff)
downloadcoreclr-0c96db33ddb7d784cda9bd0368756046f436e8bc.tar.gz
coreclr-0c96db33ddb7d784cda9bd0368756046f436e8bc.tar.bz2
coreclr-0c96db33ddb7d784cda9bd0368756046f436e8bc.zip
[x86/Linux] Enable gcMarkFilterVarsPinned (WIN64EXCEPTIONS) (#11281)
* [x86/Linux] Enable gcMarkFilterVarsPinned Do gcMarkFilterVarsPinned() for WIN64EXCEPTIONS * [x86/Linux] GCInfo : Force this pointer untracked `this` pointer is now always untracked so we can use pinned flag in tracked lifetimes. This allows us to make the refs(inside filter) pinned to prevent from double-relocation. * [x86/Linux] GCInfo : fix comment and formatting * [x86/Linux] GCInfo : Update - Force "this" pointer untracked only when "this" is generic context - Style fixes * [x86/Linux] GCInfo : remove this_OFFSET_FLAG
Diffstat (limited to 'src/gcdump')
-rw-r--r--src/gcdump/i386/gcdumpx86.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/gcdump/i386/gcdumpx86.cpp b/src/gcdump/i386/gcdumpx86.cpp
index 9096085f18..a152feb598 100644
--- a/src/gcdump/i386/gcdumpx86.cpp
+++ b/src/gcdump/i386/gcdumpx86.cpp
@@ -323,7 +323,11 @@ size_t GCDump::DumpGCTable(PTR_CBYTE table,
gcPrintf("%s%s pointer\n",
(lowBits & byref_OFFSET_FLAG) ? "byref " : "",
+#ifndef WIN64EXCEPTIONS
(lowBits & this_OFFSET_FLAG) ? "this" : ""
+#else
+ (lowBits & pinned_OFFSET_FLAG) ? "pinned" : ""
+#endif
);
_ASSERTE(endOffs <= methodSize);
@@ -677,7 +681,9 @@ size_t GCDump::DumpGCTable(PTR_CBYTE table,
{
argTab += decodeUnsigned(argTab, &val);
+#ifndef WIN64EXCEPTIONS
assert((val & this_OFFSET_FLAG) == 0);
+#endif
unsigned stkOffs = val & ~byref_OFFSET_FLAG;
unsigned lowBit = val & byref_OFFSET_FLAG;