Differentiate between IMPL_LIMITATION and NO_WAY (#43070)
authorDavid Wrighton <davidwr@microsoft.com>
Fri, 9 Oct 2020 22:38:49 +0000 (15:38 -0700)
committerGitHub <noreply@github.com>
Fri, 9 Oct 2020 22:38:49 +0000 (15:38 -0700)
commitd984ab77062e2aee681f31170db9ec809d29bd6f
tree4f6367c86eb4acdf39d2e9150e1ad2dc94625899
parentfaae2249c2f15aff6a3ed5c19d0d40dc9837d5f9
Differentiate between IMPL_LIMITATION and NO_WAY (#43070)

Differentiate between `IMPL_LIMITATION` and `NO_WAY` in the JIT by making `IMPL_LIMITATION` return `CORJIT_IMPLLIMITATION` and handle that value such that crossgen2 behavior behaves better in the presence of an `IMPL_LIMITATION`.

Also, change a `NO_WAY` in the X86 JIT to `IMPL_LIMITATION` to better reflect the issue in code.

The effect of these changes is that a test which encounters an `IMPL_LIMITATION` while running crossgen2 in our test suite will not cause the test to fail, but instead will only cause it to fail if the limitation is also present at runtime. This addresses the last issue known to cause the Pri0 X86 Crossgen2 tests to fail.
src/coreclr/src/inc/corinfo.h
src/coreclr/src/inc/corjit.h
src/coreclr/src/jit/compiler.cpp
src/coreclr/src/jit/compiler.h
src/coreclr/src/jit/error.cpp
src/coreclr/src/jit/error.h
src/coreclr/src/jit/lclvars.cpp
src/coreclr/src/tools/Common/JitInterface/CorInfoImpl.cs
src/coreclr/src/tools/Common/JitInterface/CorInfoTypes.cs
src/coreclr/src/tools/aot/jitinterface/jitwrapper.cpp
src/coreclr/src/vm/jitinterface.cpp