summaryrefslogtreecommitdiff
path: root/src/jit/codegen.h
diff options
context:
space:
mode:
authorBrian Sullivan <briansul@microsoft.com>2015-12-11 16:16:44 -0800
committerBrian Sullivan <briansul@microsoft.com>2015-12-11 16:16:44 -0800
commit121d095ed0b0076fb1c7ff59e6446fd19d506b32 (patch)
tree4a690f67e0117dd346a9de1937f018918a970ae9 /src/jit/codegen.h
parentf05270a77a9782c5960d1bdff82b8521b1e3fa5d (diff)
downloadcoreclr-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.h18
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