Bail out on CORINFO_STATIC_FIELD_ADDRESS like Crossgen1 does (#32664)
authorTomáš Rylek <trylek@microsoft.com>
Fri, 21 Feb 2020 22:47:15 +0000 (23:47 +0100)
committerGitHub <noreply@github.com>
Fri, 21 Feb 2020 22:47:15 +0000 (23:47 +0100)
commit3a88e5ab2c303df769fb7fa98ab9ca485fcaf16d
treeeb852710c3150fed73ef25320db69b7a9b3f994a
parent43eaec400ca7ef2663b0cede8393b452db66e0e2
Bail out on CORINFO_STATIC_FIELD_ADDRESS like Crossgen1 does (#32664)

This was the main problem after I overcame initial issues with
composite R2R debugging and runtime initialization: for some reason,
console output was weirdly distorted. By selectively compiling
just a subset of the framework I bisected this into
System.Console.get_Out which uses the ldsflda instruction that
Crossgen1 doesn't support. We pretended to support it but did it
incorrectly and so our result didn't match JIT. I have created
the tracking issue

https://github.com/dotnet/runtime/issues/32663

on implementing the static address as a minor perf optimization
(likely only important in some corner scenarios heavily using
statics).

Thanks

Tomas
src/coreclr/src/tools/crossgen2/ILCompiler.ReadyToRun/JitInterface/CorInfoImpl.ReadyToRun.cs