diff options
author | David Wrighton <davidwr@microsoft.com> | 2021-03-19 18:51:00 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-03-19 18:51:00 +0300 |
commit | cea6fbdaff1548a43fc0fa1127fc8a05446b5a1a (patch) | |
tree | b89a88bbcfb01586148f839317dd081cac16b7e0 /src/coreclr/tools/Common | |
parent | 7a94064774a19abea6f1f32c8b47373f7de9a01b (diff) |
Fix signature generation for devirtualization (#49854)
- Crossgen2 computes its signatures from slightly different data than the VM does
- Tweak the jit interface to specify that the resolved token comes from devirtualization to detect this special case
- The extra tokenType information is ignored by the VM
- Pass the devirtualization specified owning type through when necessary
- Check that it meets the requirements of being defined on a a derived type from the method target
Diffstat (limited to 'src/coreclr/tools/Common')
-rw-r--r-- | src/coreclr/tools/Common/JitInterface/CorInfoTypes.cs | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/coreclr/tools/Common/JitInterface/CorInfoTypes.cs b/src/coreclr/tools/Common/JitInterface/CorInfoTypes.cs index 76763e22c71..ea37d078b63 100644 --- a/src/coreclr/tools/Common/JitInterface/CorInfoTypes.cs +++ b/src/coreclr/tools/Common/JitInterface/CorInfoTypes.cs @@ -1266,6 +1266,9 @@ namespace Internal.JitInterface // token comes from CEE_LDVIRTFTN CORINFO_TOKENKIND_Ldvirtftn = 0x400 | CORINFO_TOKENKIND_Method, + + // token comes from devirtualizing a method + CORINFO_TOKENKIND_DevirtualizedMethod = 0x800 | CORINFO_TOKENKIND_Method, }; // These are error codes returned by CompileMethod |