33 #include "gc/shared/generation.hpp"
34 #include "gc/shared/generationSpec.hpp"
35 #include "gc/shared/oopStorage.hpp"
36 #include "gc/shared/space.hpp"
37 #if INCLUDE_CMSGC
38 #include "gc/cms/vmStructs_cms.hpp"
39 #endif
40 #if INCLUDE_EPSILONGC
41 #include "gc/epsilon/vmStructs_epsilon.hpp"
42 #endif
43 #if INCLUDE_G1GC
44 #include "gc/g1/vmStructs_g1.hpp"
45 #endif
46 #if INCLUDE_PARALLELGC
47 #include "gc/parallel/vmStructs_parallelgc.hpp"
48 #endif
49 #if INCLUDE_SERIALGC
50 #include "gc/serial/defNewGeneration.hpp"
51 #include "gc/serial/vmStructs_serial.hpp"
52 #endif
53 #if INCLUDE_ZGC
54 #include "gc/z/vmStructs_z.hpp"
55 #endif
56
57 #define VM_STRUCTS_GC(nonstatic_field, \
58 volatile_nonstatic_field, \
59 static_field, \
60 unchecked_nonstatic_field) \
61 CMSGC_ONLY(VM_STRUCTS_CMSGC(nonstatic_field, \
62 volatile_nonstatic_field, \
63 static_field)) \
64 EPSILONGC_ONLY(VM_STRUCTS_EPSILONGC(nonstatic_field, \
65 volatile_nonstatic_field, \
66 static_field)) \
67 G1GC_ONLY(VM_STRUCTS_G1GC(nonstatic_field, \
68 volatile_nonstatic_field, \
69 static_field)) \
70 PARALLELGC_ONLY(VM_STRUCTS_PARALLELGC(nonstatic_field, \
71 volatile_nonstatic_field, \
72 static_field)) \
73 SERIALGC_ONLY(VM_STRUCTS_SERIALGC(nonstatic_field, \
74 volatile_nonstatic_field, \
75 static_field)) \
76 ZGC_ONLY(VM_STRUCTS_ZGC(nonstatic_field, \
77 volatile_nonstatic_field, \
78 static_field)) \
79 \
80 /**********************************************************************************/ \
81 /* Generation and Space hierarchies */ \
82 /**********************************************************************************/ \
83 \
84 unchecked_nonstatic_field(AgeTable, sizes, sizeof(AgeTable::sizes)) \
85 \
86 nonstatic_field(BarrierSet, _fake_rtti, BarrierSet::FakeRtti) \
87 \
88 nonstatic_field(BarrierSet::FakeRtti, _concrete_tag, BarrierSet::Name) \
89 \
90 nonstatic_field(BlockOffsetTable, _bottom, HeapWord*) \
91 nonstatic_field(BlockOffsetTable, _end, HeapWord*) \
92 \
93 nonstatic_field(BlockOffsetSharedArray, _reserved, MemRegion) \
94 nonstatic_field(BlockOffsetSharedArray, _end, HeapWord*) \
95 nonstatic_field(BlockOffsetSharedArray, _vs, VirtualSpace) \
161 nonstatic_field(Space, _end, HeapWord*)
162
163 #define VM_TYPES_GC(declare_type, \
164 declare_toplevel_type, \
165 declare_integer_type) \
166 CMSGC_ONLY(VM_TYPES_CMSGC(declare_type, \
167 declare_toplevel_type, \
168 declare_integer_type)) \
169 EPSILONGC_ONLY(VM_TYPES_EPSILONGC(declare_type, \
170 declare_toplevel_type, \
171 declare_integer_type)) \
172 G1GC_ONLY(VM_TYPES_G1GC(declare_type, \
173 declare_toplevel_type, \
174 declare_integer_type)) \
175 PARALLELGC_ONLY(VM_TYPES_PARALLELGC(declare_type, \
176 declare_toplevel_type, \
177 declare_integer_type)) \
178 SERIALGC_ONLY(VM_TYPES_SERIALGC(declare_type, \
179 declare_toplevel_type, \
180 declare_integer_type)) \
181 ZGC_ONLY(VM_TYPES_ZGC(declare_type, \
182 declare_toplevel_type, \
183 declare_integer_type)) \
184 \
185 /******************************************/ \
186 /* Generation and space hierarchies */ \
187 /* (needed for run-time type information) */ \
188 /******************************************/ \
189 \
190 declare_toplevel_type(CollectedHeap) \
191 declare_type(GenCollectedHeap, CollectedHeap) \
192 declare_toplevel_type(Generation) \
193 declare_type(CardGeneration, Generation) \
194 declare_toplevel_type(Space) \
195 declare_type(CompactibleSpace, Space) \
196 declare_type(ContiguousSpace, CompactibleSpace) \
197 declare_type(OffsetTableContigSpace, ContiguousSpace) \
198 declare_toplevel_type(BarrierSet) \
199 declare_type(ModRefBarrierSet, BarrierSet) \
200 declare_type(CardTableBarrierSet, ModRefBarrierSet) \
236 declare_toplevel_type(HeapWord* volatile) \
237 declare_toplevel_type(MemRegion*) \
238 declare_toplevel_type(OffsetTableContigSpace*) \
239 declare_toplevel_type(Space*) \
240 declare_toplevel_type(ThreadLocalAllocBuffer*) \
241 \
242 declare_toplevel_type(BarrierSet::FakeRtti)
243
244 #define VM_INT_CONSTANTS_GC(declare_constant, \
245 declare_constant_with_value) \
246 CMSGC_ONLY(VM_INT_CONSTANTS_CMSGC(declare_constant, \
247 declare_constant_with_value)) \
248 EPSILONGC_ONLY(VM_INT_CONSTANTS_EPSILONGC(declare_constant, \
249 declare_constant_with_value)) \
250 G1GC_ONLY(VM_INT_CONSTANTS_G1GC(declare_constant, \
251 declare_constant_with_value)) \
252 PARALLELGC_ONLY(VM_INT_CONSTANTS_PARALLELGC(declare_constant, \
253 declare_constant_with_value)) \
254 SERIALGC_ONLY(VM_INT_CONSTANTS_SERIALGC(declare_constant, \
255 declare_constant_with_value)) \
256 ZGC_ONLY(VM_INT_CONSTANTS_ZGC(declare_constant, \
257 declare_constant_with_value)) \
258 \
259 /********************************************/ \
260 /* Generation and Space Hierarchy Constants */ \
261 /********************************************/ \
262 \
263 declare_constant(AgeTable::table_size) \
264 \
265 declare_constant(BarrierSet::ModRef) \
266 declare_constant(BarrierSet::CardTableBarrierSet) \
267 \
268 declare_constant(BOTConstants::LogN) \
269 declare_constant(BOTConstants::LogN_words) \
270 declare_constant(BOTConstants::N_bytes) \
271 declare_constant(BOTConstants::N_words) \
272 declare_constant(BOTConstants::LogBase) \
273 declare_constant(BOTConstants::Base) \
274 declare_constant(BOTConstants::N_powers) \
275 \
|
33 #include "gc/shared/generation.hpp"
34 #include "gc/shared/generationSpec.hpp"
35 #include "gc/shared/oopStorage.hpp"
36 #include "gc/shared/space.hpp"
37 #if INCLUDE_CMSGC
38 #include "gc/cms/vmStructs_cms.hpp"
39 #endif
40 #if INCLUDE_EPSILONGC
41 #include "gc/epsilon/vmStructs_epsilon.hpp"
42 #endif
43 #if INCLUDE_G1GC
44 #include "gc/g1/vmStructs_g1.hpp"
45 #endif
46 #if INCLUDE_PARALLELGC
47 #include "gc/parallel/vmStructs_parallelgc.hpp"
48 #endif
49 #if INCLUDE_SERIALGC
50 #include "gc/serial/defNewGeneration.hpp"
51 #include "gc/serial/vmStructs_serial.hpp"
52 #endif
53 #if INCLUDE_SHENANDOAHGC
54 #include "gc/shenandoah/vmStructs_shenandoah.hpp"
55 #endif
56 #if INCLUDE_ZGC
57 #include "gc/z/vmStructs_z.hpp"
58 #endif
59
60 #define VM_STRUCTS_GC(nonstatic_field, \
61 volatile_nonstatic_field, \
62 static_field, \
63 unchecked_nonstatic_field) \
64 CMSGC_ONLY(VM_STRUCTS_CMSGC(nonstatic_field, \
65 volatile_nonstatic_field, \
66 static_field)) \
67 EPSILONGC_ONLY(VM_STRUCTS_EPSILONGC(nonstatic_field, \
68 volatile_nonstatic_field, \
69 static_field)) \
70 G1GC_ONLY(VM_STRUCTS_G1GC(nonstatic_field, \
71 volatile_nonstatic_field, \
72 static_field)) \
73 PARALLELGC_ONLY(VM_STRUCTS_PARALLELGC(nonstatic_field, \
74 volatile_nonstatic_field, \
75 static_field)) \
76 SERIALGC_ONLY(VM_STRUCTS_SERIALGC(nonstatic_field, \
77 volatile_nonstatic_field, \
78 static_field)) \
79 SHENANDOAHGC_ONLY(VM_STRUCTS_SHENANDOAH(nonstatic_field, \
80 volatile_nonstatic_field, \
81 static_field)) \
82 ZGC_ONLY(VM_STRUCTS_ZGC(nonstatic_field, \
83 volatile_nonstatic_field, \
84 static_field)) \
85 \
86 /**********************************************************************************/ \
87 /* Generation and Space hierarchies */ \
88 /**********************************************************************************/ \
89 \
90 unchecked_nonstatic_field(AgeTable, sizes, sizeof(AgeTable::sizes)) \
91 \
92 nonstatic_field(BarrierSet, _fake_rtti, BarrierSet::FakeRtti) \
93 \
94 nonstatic_field(BarrierSet::FakeRtti, _concrete_tag, BarrierSet::Name) \
95 \
96 nonstatic_field(BlockOffsetTable, _bottom, HeapWord*) \
97 nonstatic_field(BlockOffsetTable, _end, HeapWord*) \
98 \
99 nonstatic_field(BlockOffsetSharedArray, _reserved, MemRegion) \
100 nonstatic_field(BlockOffsetSharedArray, _end, HeapWord*) \
101 nonstatic_field(BlockOffsetSharedArray, _vs, VirtualSpace) \
167 nonstatic_field(Space, _end, HeapWord*)
168
169 #define VM_TYPES_GC(declare_type, \
170 declare_toplevel_type, \
171 declare_integer_type) \
172 CMSGC_ONLY(VM_TYPES_CMSGC(declare_type, \
173 declare_toplevel_type, \
174 declare_integer_type)) \
175 EPSILONGC_ONLY(VM_TYPES_EPSILONGC(declare_type, \
176 declare_toplevel_type, \
177 declare_integer_type)) \
178 G1GC_ONLY(VM_TYPES_G1GC(declare_type, \
179 declare_toplevel_type, \
180 declare_integer_type)) \
181 PARALLELGC_ONLY(VM_TYPES_PARALLELGC(declare_type, \
182 declare_toplevel_type, \
183 declare_integer_type)) \
184 SERIALGC_ONLY(VM_TYPES_SERIALGC(declare_type, \
185 declare_toplevel_type, \
186 declare_integer_type)) \
187 SHENANDOAHGC_ONLY(VM_TYPES_SHENANDOAH(declare_type, \
188 declare_toplevel_type, \
189 declare_integer_type)) \
190 ZGC_ONLY(VM_TYPES_ZGC(declare_type, \
191 declare_toplevel_type, \
192 declare_integer_type)) \
193 \
194 /******************************************/ \
195 /* Generation and space hierarchies */ \
196 /* (needed for run-time type information) */ \
197 /******************************************/ \
198 \
199 declare_toplevel_type(CollectedHeap) \
200 declare_type(GenCollectedHeap, CollectedHeap) \
201 declare_toplevel_type(Generation) \
202 declare_type(CardGeneration, Generation) \
203 declare_toplevel_type(Space) \
204 declare_type(CompactibleSpace, Space) \
205 declare_type(ContiguousSpace, CompactibleSpace) \
206 declare_type(OffsetTableContigSpace, ContiguousSpace) \
207 declare_toplevel_type(BarrierSet) \
208 declare_type(ModRefBarrierSet, BarrierSet) \
209 declare_type(CardTableBarrierSet, ModRefBarrierSet) \
245 declare_toplevel_type(HeapWord* volatile) \
246 declare_toplevel_type(MemRegion*) \
247 declare_toplevel_type(OffsetTableContigSpace*) \
248 declare_toplevel_type(Space*) \
249 declare_toplevel_type(ThreadLocalAllocBuffer*) \
250 \
251 declare_toplevel_type(BarrierSet::FakeRtti)
252
253 #define VM_INT_CONSTANTS_GC(declare_constant, \
254 declare_constant_with_value) \
255 CMSGC_ONLY(VM_INT_CONSTANTS_CMSGC(declare_constant, \
256 declare_constant_with_value)) \
257 EPSILONGC_ONLY(VM_INT_CONSTANTS_EPSILONGC(declare_constant, \
258 declare_constant_with_value)) \
259 G1GC_ONLY(VM_INT_CONSTANTS_G1GC(declare_constant, \
260 declare_constant_with_value)) \
261 PARALLELGC_ONLY(VM_INT_CONSTANTS_PARALLELGC(declare_constant, \
262 declare_constant_with_value)) \
263 SERIALGC_ONLY(VM_INT_CONSTANTS_SERIALGC(declare_constant, \
264 declare_constant_with_value)) \
265 SHENANDOAHGC_ONLY(VM_INT_CONSTANTS_SHENANDOAH(declare_constant, \
266 declare_constant_with_value)) \
267 ZGC_ONLY(VM_INT_CONSTANTS_ZGC(declare_constant, \
268 declare_constant_with_value)) \
269 \
270 /********************************************/ \
271 /* Generation and Space Hierarchy Constants */ \
272 /********************************************/ \
273 \
274 declare_constant(AgeTable::table_size) \
275 \
276 declare_constant(BarrierSet::ModRef) \
277 declare_constant(BarrierSet::CardTableBarrierSet) \
278 \
279 declare_constant(BOTConstants::LogN) \
280 declare_constant(BOTConstants::LogN_words) \
281 declare_constant(BOTConstants::N_bytes) \
282 declare_constant(BOTConstants::N_words) \
283 declare_constant(BOTConstants::LogBase) \
284 declare_constant(BOTConstants::Base) \
285 declare_constant(BOTConstants::N_powers) \
286 \
|