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:
authorMichal Strehovský <michals@microsoft.com>2015-10-28 06:23:17 +0300
committerMichal Strehovský <michals@microsoft.com>2015-10-28 19:17:32 +0300
commit59c931b0493534094f344b309bee79a707c3ba9f (patch)
tree3ca0e799de458e93c864a34e55836b9523141b1f /src/JitInterface
parent3c3b4b37f021be3c689058d4602d581778c29620 (diff)
Half-implement thread statics
The implementation mirrors the way we implement GC statics. The actual storage for thread static fields will be allocated at runtime on the GC heap and the helper to get to the static base will need to indirect through the GC handle table. Most of the piping within the compiler is present. What is not present is: * Actually allocating an object that represents the static block. We will need to decide whether we want to do it lazily, or on thread attach, or... * Putting the "region of handles to thread static blocks" in a thread static section of the executable. This likely needs some work on the ObjWriter side. * The helper to get the thread static base is implemented as INT3. This way we don't need to blacklist 3 methods for Linux Hello World.
Diffstat (limited to 'src/JitInterface')
-rw-r--r--src/JitInterface/src/CorInfoImpl.cs2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/JitInterface/src/CorInfoImpl.cs b/src/JitInterface/src/CorInfoImpl.cs
index a4ffc22f7..72154bf23 100644
--- a/src/JitInterface/src/CorInfoImpl.cs
+++ b/src/JitInterface/src/CorInfoImpl.cs
@@ -1167,7 +1167,7 @@ namespace Internal.JitInterface
ReadyToRunHelperId helperId;
if (field.IsThreadStatic)
{
- throw new NotImplementedException();
+ helperId = ReadyToRunHelperId.GetThreadStaticBase;
}
else if (field.HasGCStaticBase)
{