Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/dotnet/runtime.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Wrighton <davidwr@microsoft.com>2021-03-19 18:51:00 +0300
committerGitHub <noreply@github.com>2021-03-19 18:51:00 +0300
commitcea6fbdaff1548a43fc0fa1127fc8a05446b5a1a (patch)
treeb89a88bbcfb01586148f839317dd081cac16b7e0 /src/coreclr/tools/Common
parent7a94064774a19abea6f1f32c8b47373f7de9a01b (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.cs3
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