diff options
author | Hanjoung Lee <waterets@gmail.com> | 2017-06-16 09:53:44 +0900 |
---|---|---|
committer | Bruce Forstall <brucefo@microsoft.com> | 2017-06-15 17:53:44 -0700 |
commit | 0c96db33ddb7d784cda9bd0368756046f436e8bc (patch) | |
tree | a711629ae4727ceb4d7a2b1477334eb3db3356e1 /src/gcdump | |
parent | 5580664eb419cb868a3669253d5d9666a3def641 (diff) | |
download | coreclr-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.cpp | 6 |
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; |