Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/corert.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Kotas <jkotas@microsoft.com>2015-11-17 11:45:38 +0300
committerJan Kotas <jkotas@microsoft.com>2015-11-18 10:48:21 +0300
commit684a0cfa8d744e481809d7e0150bb2465f63fcc6 (patch)
tree7d0a0c7b133ff6098f24e05e23f22aacfb62ef00 /src/JitInterface
parent7b54577a96257fc1a99cc435bd3fac84e981a724 (diff)
Fix a few JITInterface TODOs
Diffstat (limited to 'src/JitInterface')
-rw-r--r--src/JitInterface/src/CorInfoImpl.cs16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/JitInterface/src/CorInfoImpl.cs b/src/JitInterface/src/CorInfoImpl.cs
index e19c034c6..1a2900b73 100644
--- a/src/JitInterface/src/CorInfoImpl.cs
+++ b/src/JitInterface/src/CorInfoImpl.cs
@@ -455,8 +455,8 @@ namespace Internal.JitInterface
[return: MarshalAs(UnmanagedType.I1)]
bool canTailCall(IntPtr _this, CORINFO_METHOD_STRUCT_* callerHnd, CORINFO_METHOD_STRUCT_* declaredCalleeHnd, CORINFO_METHOD_STRUCT_* exactCalleeHnd, [MarshalAs(UnmanagedType.I1)]bool fIsTailPrefix)
{
- // TODO: tail call
- return false;
+ // No restrictions on tailcalls
+ return true;
}
void reportTailCallDecision(IntPtr _this, CORINFO_METHOD_STRUCT_* callerHnd, CORINFO_METHOD_STRUCT_* calleeHnd, [MarshalAs(UnmanagedType.I1)]bool fIsTailPrefix, CorInfoTailCall tailCallResult, byte* reason)
@@ -1318,9 +1318,8 @@ namespace Internal.JitInterface
}
else
{
- TypeDesc type = methodSig[index];
-
- // TODO: Pinning
+ LocalVariableDefinition[] locals = (LocalVariableDefinition[])sigObj;
+ TypeDesc type = locals[index].Type;
return ObjectToHandle(type);
}
}
@@ -2064,9 +2063,12 @@ namespace Internal.JitInterface
ushort getRelocTypeHint(IntPtr _this, void* target)
{
- // TODO: Hint to use REL32
- return 0xFFFF;
+ if (_compilation.TypeSystemContext.Target.Architecture == TargetArchitecture.X64)
+ return (ushort)ILCompiler.DependencyAnalysis.RelocType.IMAGE_REL_BASED_REL32;
+
+ return UInt16.MaxValue;
}
+
void getModuleNativeEntryPointRange(IntPtr _this, ref void* pStart, ref void* pEnd)
{ throw new NotImplementedException("getModuleNativeEntryPointRange"); }