23
24 #ifndef SHARE_GC_SHARED_GCTHREADLOCALDATA_HPP
25 #define SHARE_GC_SHARED_GCTHREADLOCALDATA_HPP
26
27 #include "utilities/globalDefinitions.hpp"
28
29 // Thread local data area for GC-specific information. Each GC
30 // is free to decide the internal structure and contents of this
31 // area. It is represented as a 64-bit aligned opaque blob to
32 // avoid circular dependencies between Thread and all GCs. For
33 // the same reason, the size of the data area is hard coded to
34 // provide enough space for all current GCs. Adjust the size if
35 // needed, but avoid making it excessively large as it adds to
36 // the memory overhead of creating a thread.
37 //
38 // Use Thread::gc_data<T>() to access the data, where T is the
39 // GC-specific type describing the structure of the data. GCs
40 // should consider placing frequently accessed fields first in
41 // T, so that field offsets relative to Thread are small, which
42 // often allows for a more compact instruction encoding.
43 typedef uint64_t GCThreadLocalData[14]; // 112 bytes
44
45 #endif // SHARE_GC_SHARED_GCTHREADLOCALDATA_HPP
|
23
24 #ifndef SHARE_GC_SHARED_GCTHREADLOCALDATA_HPP
25 #define SHARE_GC_SHARED_GCTHREADLOCALDATA_HPP
26
27 #include "utilities/globalDefinitions.hpp"
28
29 // Thread local data area for GC-specific information. Each GC
30 // is free to decide the internal structure and contents of this
31 // area. It is represented as a 64-bit aligned opaque blob to
32 // avoid circular dependencies between Thread and all GCs. For
33 // the same reason, the size of the data area is hard coded to
34 // provide enough space for all current GCs. Adjust the size if
35 // needed, but avoid making it excessively large as it adds to
36 // the memory overhead of creating a thread.
37 //
38 // Use Thread::gc_data<T>() to access the data, where T is the
39 // GC-specific type describing the structure of the data. GCs
40 // should consider placing frequently accessed fields first in
41 // T, so that field offsets relative to Thread are small, which
42 // often allows for a more compact instruction encoding.
43 typedef uint64_t GCThreadLocalData[18]; // 144 bytes
44
45 #endif // SHARE_GC_SHARED_GCTHREADLOCALDATA_HPP
|