diff options
author | Brian Sullivan <briansul@microsoft.com> | 2015-12-11 16:16:44 -0800 |
---|---|---|
committer | Brian Sullivan <briansul@microsoft.com> | 2015-12-11 16:16:44 -0800 |
commit | 121d095ed0b0076fb1c7ff59e6446fd19d506b32 (patch) | |
tree | 4a690f67e0117dd346a9de1937f018918a970ae9 /src/jit/codegen.h | |
parent | f05270a77a9782c5960d1bdff82b8521b1e3fa5d (diff) | |
download | coreclr-121d095ed0b0076fb1c7ff59e6446fd19d506b32.tar.gz coreclr-121d095ed0b0076fb1c7ff59e6446fd19d506b32.tar.bz2 coreclr-121d095ed0b0076fb1c7ff59e6446fd19d506b32.zip |
Port of all JIT changes for .NET Framework 4.6.1 changes
http://blogs.msdn.com/b/dotnet/archive/2015/11/30/net-framework-4-6-1-is-now-available.aspx
.NET Framework list of changes in 4.6.1
https://github.com/Microsoft/dotnet/blob/master/releases/net461/dotnet461-changes.md
Additional changes including
- Working ARM64 JIT compiler
- Additional JIT Optimizations
o Tail call recursion optimization
o Array length tracking optimization
o CSE for widening casts
o Smaller encoding for RIP relative and absolute addresses in addressing modes
o Tracked Local Variable increased to 512
o Improved handling of Intrinsics System.GetType()
o Improved handling of Math intrinsics
- Work for the X86 Ryu-JIT compiler
[tfs-changeset: 1557101]
Diffstat (limited to 'src/jit/codegen.h')
-rw-r--r-- | src/jit/codegen.h | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/src/jit/codegen.h b/src/jit/codegen.h index 9e7fd3ef9c..79ecc295d7 100644 --- a/src/jit/codegen.h +++ b/src/jit/codegen.h @@ -102,6 +102,10 @@ private: // branch to on compare condition being true. 'false' label corresponds to the target to // branch to on condition being false. static void genJumpKindsForTree(GenTreePtr cmpTree, emitJumpKind jmpKind[2], bool jmpToTrueLabel[2]); +#if !defined(_TARGET_64BIT_) + static void genJumpKindsForTreeLongHi(GenTreePtr cmpTree, emitJumpKind jmpKind[2], bool jmpToTrueLabel[2]); + static void genJumpKindsForTreeLongLo(GenTreePtr cmpTree, emitJumpKind jmpKind[2], bool jmpToTrueLabel[2]); +#endif //!defined(_TARGET_64BIT_) #endif // _TARGET_XARCH_ static bool genShouldRoundFP(); @@ -398,13 +402,8 @@ protected: FuncletFrameInfoDsc genFuncletInfo; -#elif defined(_TARGET_XARCH_) && !FEATURE_STACK_FP_X87 +#elif defined(_TARGET_AMD64_) - // Save/Restore callee saved float regs to stack - void genPreserveCalleeSavedFltRegs(unsigned lclFrameSize); - void genRestoreCalleeSavedFltRegs(unsigned lclFrameSize); - -#ifdef _TARGET_AMD64_ // A set of information that is used by funclet prolog and epilog generation. It is collected once, before // funclet prologs and epilogs are generated, and used by all funclet prologs and epilogs, which must all be the same. struct FuncletFrameInfoDsc @@ -415,8 +414,15 @@ protected: }; FuncletFrameInfoDsc genFuncletInfo; + #endif // _TARGET_AMD64_ +#if defined(_TARGET_XARCH_) && !FEATURE_STACK_FP_X87 + + // Save/Restore callee saved float regs to stack + void genPreserveCalleeSavedFltRegs(unsigned lclFrameSize); + void genRestoreCalleeSavedFltRegs(unsigned lclFrameSize); + #endif // _TARGET_XARCH_ && FEATURE_STACK_FP_X87 #if !FEATURE_STACK_FP_X87 |