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/codegeninterface.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/codegeninterface.h')
-rw-r--r-- | src/jit/codegeninterface.h | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/jit/codegeninterface.h b/src/jit/codegeninterface.h index 672c51706d..077f4e57b0 100644 --- a/src/jit/codegeninterface.h +++ b/src/jit/codegeninterface.h @@ -178,7 +178,15 @@ public: regNumber genGetThisArgReg (GenTreePtr call); #ifdef _TARGET_XARCH_ - bool genAddrShouldUsePCRel(size_t addr); +#ifdef _TARGET_AMD64_ + // There are no reloc hints on x86 + unsigned short genAddrRelocTypeHint(size_t addr); +#endif + bool genDataIndirAddrCanBeEncodedAsPCRelOffset(size_t addr); + bool genCodeIndirAddrCanBeEncodedAsPCRelOffset(size_t addr); + bool genCodeIndirAddrCanBeEncodedAsZeroRelOffset(size_t addr); + bool genCodeIndirAddrNeedsReloc(size_t addr); + bool genCodeAddrNeedsReloc(size_t addr); #endif @@ -284,8 +292,9 @@ public: unsigned * alignmentWB); void genMarkTreeInReg (GenTreePtr tree, regNumber reg); +#if CPU_LONG_USES_REGPAIR void genMarkTreeInRegPair (GenTreePtr tree, regPairNo regPair); - +#endif // Methods to abstract target information bool validImmForInstr (instruction ins, ssize_t val, insFlags flags = INS_FLAGS_DONT_CARE); |