comparison src/share/vm/runtime/vmStructs.cpp @ 4737:75c0a73eee98

7102776: Pack instanceKlass boolean fields into single u1 field Summary: Reduce class runtime memory usage by packing 4 instanceKlass boolean fields into single u1 field. Save 4-byte for each loaded class. Reviewed-by: dholmes, bobv, phh, twisti, never, coleenp Contributed-by: Jiangli Zhou <jiangli.zhou@oracle.com>
author coleenp
date Thu, 17 Nov 2011 12:53:59 -0500
parents fd65bc7c09b6
children 52b5d32fbfaf
comparison
equal deleted inserted replaced
4038:869804b759e7 4737:75c0a73eee98
305 nonstatic_field(instanceKlass, _inner_classes, typeArrayOop) \ 305 nonstatic_field(instanceKlass, _inner_classes, typeArrayOop) \
306 nonstatic_field(instanceKlass, _nonstatic_field_size, int) \ 306 nonstatic_field(instanceKlass, _nonstatic_field_size, int) \
307 nonstatic_field(instanceKlass, _static_field_size, int) \ 307 nonstatic_field(instanceKlass, _static_field_size, int) \
308 nonstatic_field(instanceKlass, _static_oop_field_count, int) \ 308 nonstatic_field(instanceKlass, _static_oop_field_count, int) \
309 nonstatic_field(instanceKlass, _nonstatic_oop_map_size, int) \ 309 nonstatic_field(instanceKlass, _nonstatic_oop_map_size, int) \
310 nonstatic_field(instanceKlass, _is_marked_dependent, bool) \ 310 nonstatic_field(instanceKlass, _misc_flags, u1) \
311 nonstatic_field(instanceKlass, _minor_version, u2) \ 311 nonstatic_field(instanceKlass, _minor_version, u2) \
312 nonstatic_field(instanceKlass, _major_version, u2) \ 312 nonstatic_field(instanceKlass, _major_version, u2) \
313 nonstatic_field(instanceKlass, _init_state, instanceKlass::ClassState) \ 313 nonstatic_field(instanceKlass, _init_state, instanceKlass::ClassState) \
314 nonstatic_field(instanceKlass, _init_thread, Thread*) \ 314 nonstatic_field(instanceKlass, _init_thread, Thread*) \
315 nonstatic_field(instanceKlass, _vtable_len, int) \ 315 nonstatic_field(instanceKlass, _vtable_len, int) \
1360 declare_unsigned_integer_type(jushort) \ 1360 declare_unsigned_integer_type(jushort) \
1361 declare_unsigned_integer_type(unsigned long) \ 1361 declare_unsigned_integer_type(unsigned long) \
1362 /* The compiler thinks this is a different type than */ \ 1362 /* The compiler thinks this is a different type than */ \
1363 /* unsigned short on Win32 */ \ 1363 /* unsigned short on Win32 */ \
1364 declare_unsigned_integer_type(u2) \ 1364 declare_unsigned_integer_type(u2) \
1365 declare_unsigned_integer_type(u1) \
1365 declare_unsigned_integer_type(unsigned) \ 1366 declare_unsigned_integer_type(unsigned) \
1366 \ 1367 \
1367 /*****************************/ \ 1368 /*****************************/ \
1368 /* C primitive pointer types */ \ 1369 /* C primitive pointer types */ \
1369 /*****************************/ \ 1370 /*****************************/ \
2383 declare_constant(instanceKlass::loaded) \ 2384 declare_constant(instanceKlass::loaded) \
2384 declare_constant(instanceKlass::linked) \ 2385 declare_constant(instanceKlass::linked) \
2385 declare_constant(instanceKlass::being_initialized) \ 2386 declare_constant(instanceKlass::being_initialized) \
2386 declare_constant(instanceKlass::fully_initialized) \ 2387 declare_constant(instanceKlass::fully_initialized) \
2387 declare_constant(instanceKlass::initialization_error) \ 2388 declare_constant(instanceKlass::initialization_error) \
2389 declare_constant(instanceKlass::IS_MARKED_DEPENDENT) \
2388 \ 2390 \
2389 /*********************************/ \ 2391 /*********************************/ \
2390 /* Symbol* - symbol max length */ \ 2392 /* Symbol* - symbol max length */ \
2391 /*********************************/ \ 2393 /*********************************/ \
2392 \ 2394 \