Unify instruction set definition (#33730)
authorDavid Wrighton <davidwr@microsoft.com>
Thu, 19 Mar 2020 16:29:19 +0000 (09:29 -0700)
committerGitHub <noreply@github.com>
Thu, 19 Mar 2020 16:29:19 +0000 (09:29 -0700)
commitf80a5147ef7662c3238275568c9dad7655a9684f
treecb3aa922cde15b570e1caafd5a677c094393f717
parent188243a1ec2abb19f5d37d8274afa1994e848dd2
Unify instruction set definition (#33730)

* Unify instruction set definition
- Build simple DSL to describe the instruction set support of the compiler/jit/etc
- Parse DSL and produce data structures useable throughout our compilation environment
- This is in support of adding more granular instruction set support to crossgen2, but this change is pulled out into its own PR to ease reviewing cost
- Make it hard to mess up 64bit instruction set variants by adding helper function to fill them in.
- Add 64 bit variant names to 32bit instruction set enum to remove the need to add a large number of #ifdefs to the jit
32 files changed:
src/coreclr/src/ToolBox/superpmi/superpmi-shared/methodcontext.cpp
src/coreclr/src/inc/corinfo.h
src/coreclr/src/inc/corinfoinstructionset.h [new file with mode: 0644]
src/coreclr/src/inc/corjitflags.h
src/coreclr/src/inc/readytoruninstructionset.h [new file with mode: 0644]
src/coreclr/src/jit/compiler.cpp
src/coreclr/src/jit/compiler.h
src/coreclr/src/jit/ee_il_dll.cpp
src/coreclr/src/jit/hwintrinsic.cpp
src/coreclr/src/jit/hwintrinsic.h
src/coreclr/src/jit/hwintrinsicarm64.cpp
src/coreclr/src/jit/hwintrinsiccodegenxarch.cpp
src/coreclr/src/jit/hwintrinsicxarch.cpp
src/coreclr/src/jit/instr.h
src/coreclr/src/jit/jitee.h
src/coreclr/src/jit/lsraarm64.cpp
src/coreclr/src/jit/lsraxarch.cpp
src/coreclr/src/jit/simdcodegenxarch.cpp
src/coreclr/src/pal/src/misc/jitsupport.cpp
src/coreclr/src/tools/Common/Internal/Runtime/ReadyToRunInstructionSet.cs [new file with mode: 0644]
src/coreclr/src/tools/Common/JitInterface/CorInfoImpl.cs
src/coreclr/src/tools/Common/JitInterface/CorInfoInstructionSet.cs [new file with mode: 0644]
src/coreclr/src/tools/Common/JitInterface/CorInfoTypes.cs
src/coreclr/src/tools/Common/JitInterface/ThunkGenerator/InstructionSetDesc.txt [new file with mode: 0644]
src/coreclr/src/tools/Common/JitInterface/ThunkGenerator/InstructionSetGenerator.cs [new file with mode: 0644]
src/coreclr/src/tools/Common/JitInterface/ThunkGenerator/Program.cs
src/coreclr/src/tools/Common/JitInterface/ThunkGenerator/gen.bat
src/coreclr/src/tools/Common/JitInterface/ThunkGenerator/gen.sh
src/coreclr/src/tools/crossgen2/ILCompiler.ReadyToRun/ILCompiler.ReadyToRun.csproj
src/coreclr/src/tools/crossgen2/jitinterface/jitwrapper.cpp
src/coreclr/src/vm/codeman.cpp
src/coreclr/src/zap/zapper.cpp