comparison src/share/vm/runtime/vmStructs.cpp @ 10408:836a62f43af9

Merge with http://hg.openjdk.java.net/hsx/hsx25/hotspot/
author Doug Simon <doug.simon@oracle.com>
date Wed, 19 Jun 2013 10:45:56 +0200
parents 89e4d67fdd2a f2110083203d
children 6b0fd0964b87
comparison
equal deleted inserted replaced
10086:e0fb8a213650 10408:836a62f43af9
58 #include "memory/genCollectedHeap.hpp" 58 #include "memory/genCollectedHeap.hpp"
59 #include "memory/generation.hpp" 59 #include "memory/generation.hpp"
60 #include "memory/generationSpec.hpp" 60 #include "memory/generationSpec.hpp"
61 #include "memory/heap.hpp" 61 #include "memory/heap.hpp"
62 #include "memory/metablock.hpp" 62 #include "memory/metablock.hpp"
63 #include "memory/referenceType.hpp"
63 #include "memory/space.hpp" 64 #include "memory/space.hpp"
64 #include "memory/tenuredGeneration.hpp" 65 #include "memory/tenuredGeneration.hpp"
65 #include "memory/universe.hpp" 66 #include "memory/universe.hpp"
66 #include "memory/watermark.hpp" 67 #include "memory/watermark.hpp"
67 #include "oops/arrayKlass.hpp" 68 #include "oops/arrayKlass.hpp"
75 #include "oops/instanceMirrorKlass.hpp" 76 #include "oops/instanceMirrorKlass.hpp"
76 #include "oops/instanceOop.hpp" 77 #include "oops/instanceOop.hpp"
77 #include "oops/klass.hpp" 78 #include "oops/klass.hpp"
78 #include "oops/markOop.hpp" 79 #include "oops/markOop.hpp"
79 #include "oops/methodData.hpp" 80 #include "oops/methodData.hpp"
81 #include "oops/methodCounters.hpp"
80 #include "oops/method.hpp" 82 #include "oops/method.hpp"
81 #include "oops/objArrayKlass.hpp" 83 #include "oops/objArrayKlass.hpp"
82 #include "oops/objArrayOop.hpp" 84 #include "oops/objArrayOop.hpp"
83 #include "oops/oop.inline.hpp" 85 #include "oops/oop.inline.hpp"
84 #include "oops/symbol.hpp" 86 #include "oops/symbol.hpp"
289 nonstatic_field(InstanceKlass, _methods, Array<Method*>*) \ 291 nonstatic_field(InstanceKlass, _methods, Array<Method*>*) \
290 nonstatic_field(InstanceKlass, _local_interfaces, Array<Klass*>*) \ 292 nonstatic_field(InstanceKlass, _local_interfaces, Array<Klass*>*) \
291 nonstatic_field(InstanceKlass, _transitive_interfaces, Array<Klass*>*) \ 293 nonstatic_field(InstanceKlass, _transitive_interfaces, Array<Klass*>*) \
292 nonstatic_field(InstanceKlass, _fields, Array<u2>*) \ 294 nonstatic_field(InstanceKlass, _fields, Array<u2>*) \
293 nonstatic_field(InstanceKlass, _java_fields_count, u2) \ 295 nonstatic_field(InstanceKlass, _java_fields_count, u2) \
294 nonstatic_field(InstanceKlass, _constants, ConstantPool*) \ 296 nonstatic_field(InstanceKlass, _constants, ConstantPool*) \
295 nonstatic_field(InstanceKlass, _class_loader_data, ClassLoaderData*) \ 297 nonstatic_field(InstanceKlass, _class_loader_data, ClassLoaderData*) \
296 nonstatic_field(InstanceKlass, _protection_domain, oop) \
297 nonstatic_field(InstanceKlass, _signers, objArrayOop) \
298 nonstatic_field(InstanceKlass, _source_file_name, Symbol*) \ 298 nonstatic_field(InstanceKlass, _source_file_name, Symbol*) \
299 nonstatic_field(InstanceKlass, _source_debug_extension, char*) \ 299 nonstatic_field(InstanceKlass, _source_debug_extension, char*) \
300 nonstatic_field(InstanceKlass, _inner_classes, Array<jushort>*) \ 300 nonstatic_field(InstanceKlass, _inner_classes, Array<jushort>*) \
301 nonstatic_field(InstanceKlass, _nonstatic_field_size, int) \ 301 nonstatic_field(InstanceKlass, _nonstatic_field_size, int) \
302 nonstatic_field(InstanceKlass, _static_field_size, int) \ 302 nonstatic_field(InstanceKlass, _static_field_size, int) \
346 nonstatic_field(MethodData, _nof_overflow_traps, uint) \ 346 nonstatic_field(MethodData, _nof_overflow_traps, uint) \
347 nonstatic_field(MethodData, _eflags, intx) \ 347 nonstatic_field(MethodData, _eflags, intx) \
348 nonstatic_field(MethodData, _arg_local, intx) \ 348 nonstatic_field(MethodData, _arg_local, intx) \
349 nonstatic_field(MethodData, _arg_stack, intx) \ 349 nonstatic_field(MethodData, _arg_stack, intx) \
350 nonstatic_field(MethodData, _arg_returned, intx) \ 350 nonstatic_field(MethodData, _arg_returned, intx) \
351 nonstatic_field(Method, _constMethod, ConstMethod*) \ 351 nonstatic_field(MethodCounters, _interpreter_invocation_count, int) \
352 nonstatic_field(Method, _method_data, MethodData*) \ 352 nonstatic_field(MethodCounters, _interpreter_throwout_count, u2) \
353 nonstatic_field(Method, _interpreter_invocation_count, int) \ 353 nonstatic_field(MethodCounters, _number_of_breakpoints, u2) \
354 nonstatic_field(MethodCounters, _invocation_counter, InvocationCounter) \
355 nonstatic_field(MethodCounters, _backedge_counter, InvocationCounter) \
356 nonstatic_field(Method, _constMethod, ConstMethod*) \
357 nonstatic_field(Method, _method_data, MethodData*) \
358 nonstatic_field(Method, _method_counters, MethodCounters*) \
354 nonstatic_field(Method, _access_flags, AccessFlags) \ 359 nonstatic_field(Method, _access_flags, AccessFlags) \
355 nonstatic_field(Method, _vtable_index, int) \ 360 nonstatic_field(Method, _vtable_index, int) \
356 nonstatic_field(Method, _method_size, u2) \ 361 nonstatic_field(Method, _method_size, u2) \
357 nonstatic_field(Method, _interpreter_throwout_count, u2) \
358 nonstatic_field(Method, _number_of_breakpoints, u2) \
359 nonstatic_field(Method, _invocation_counter, InvocationCounter) \
360 nonstatic_field(Method, _backedge_counter, InvocationCounter) \
361 nonproduct_nonstatic_field(Method, _compiled_invocation_count, int) \ 362 nonproduct_nonstatic_field(Method, _compiled_invocation_count, int) \
362 volatile_nonstatic_field(Method, _code, nmethod*) \ 363 volatile_nonstatic_field(Method, _code, nmethod*) \
363 nonstatic_field(Method, _i2i_entry, address) \ 364 nonstatic_field(Method, _i2i_entry, address) \
364 nonstatic_field(Method, _adapter, AdapterHandlerEntry*) \ 365 nonstatic_field(Method, _adapter, AdapterHandlerEntry*) \
365 volatile_nonstatic_field(Method, _from_compiled_entry, address) \ 366 volatile_nonstatic_field(Method, _from_compiled_entry, address) \
824 nonstatic_field(nmethod, _verified_entry_point, address) \ 825 nonstatic_field(nmethod, _verified_entry_point, address) \
825 nonstatic_field(nmethod, _osr_entry_point, address) \ 826 nonstatic_field(nmethod, _osr_entry_point, address) \
826 nonstatic_field(nmethod, _lock_count, jint) \ 827 nonstatic_field(nmethod, _lock_count, jint) \
827 nonstatic_field(nmethod, _stack_traversal_mark, long) \ 828 nonstatic_field(nmethod, _stack_traversal_mark, long) \
828 nonstatic_field(nmethod, _compile_id, int) \ 829 nonstatic_field(nmethod, _compile_id, int) \
830 nonstatic_field(nmethod, _comp_level, int) \
829 nonstatic_field(nmethod, _exception_cache, ExceptionCache*) \ 831 nonstatic_field(nmethod, _exception_cache, ExceptionCache*) \
830 nonstatic_field(nmethod, _marked_for_deoptimization, bool) \ 832 nonstatic_field(nmethod, _marked_for_deoptimization, bool) \
831 \ 833 \
832 unchecked_c2_static_field(Deoptimization, _trap_reason_name, void*) \ 834 unchecked_c2_static_field(Deoptimization, _trap_reason_name, void*) \
833 \ 835 \
1052 c2_nonstatic_field(Compile, _method, ciMethod*) \ 1054 c2_nonstatic_field(Compile, _method, ciMethod*) \
1053 c2_nonstatic_field(Compile, _compile_id, const int) \ 1055 c2_nonstatic_field(Compile, _compile_id, const int) \
1054 c2_nonstatic_field(Compile, _save_argument_registers, const bool) \ 1056 c2_nonstatic_field(Compile, _save_argument_registers, const bool) \
1055 c2_nonstatic_field(Compile, _subsume_loads, const bool) \ 1057 c2_nonstatic_field(Compile, _subsume_loads, const bool) \
1056 c2_nonstatic_field(Compile, _do_escape_analysis, const bool) \ 1058 c2_nonstatic_field(Compile, _do_escape_analysis, const bool) \
1059 c2_nonstatic_field(Compile, _eliminate_boxing, const bool) \
1057 c2_nonstatic_field(Compile, _ilt, InlineTree*) \ 1060 c2_nonstatic_field(Compile, _ilt, InlineTree*) \
1058 \ 1061 \
1059 c2_nonstatic_field(InlineTree, _caller_jvms, JVMState*) \ 1062 c2_nonstatic_field(InlineTree, _caller_jvms, JVMState*) \
1060 c2_nonstatic_field(InlineTree, _method, ciMethod*) \ 1063 c2_nonstatic_field(InlineTree, _method, ciMethod*) \
1061 c2_nonstatic_field(InlineTree, _caller_tree, InlineTree*) \ 1064 c2_nonstatic_field(InlineTree, _caller_tree, InlineTree*) \
1113 c2_nonstatic_field(PhaseChaitin, _alternate, int) \ 1116 c2_nonstatic_field(PhaseChaitin, _alternate, int) \
1114 c2_nonstatic_field(PhaseChaitin, _lo_degree, uint) \ 1117 c2_nonstatic_field(PhaseChaitin, _lo_degree, uint) \
1115 c2_nonstatic_field(PhaseChaitin, _lo_stk_degree, uint) \ 1118 c2_nonstatic_field(PhaseChaitin, _lo_stk_degree, uint) \
1116 c2_nonstatic_field(PhaseChaitin, _hi_degree, uint) \ 1119 c2_nonstatic_field(PhaseChaitin, _hi_degree, uint) \
1117 c2_nonstatic_field(PhaseChaitin, _simplified, uint) \ 1120 c2_nonstatic_field(PhaseChaitin, _simplified, uint) \
1118 c2_nonstatic_field(PhaseChaitin, _maxlrg, uint) \
1119 \ 1121 \
1120 c2_nonstatic_field(Block, _nodes, Node_List) \ 1122 c2_nonstatic_field(Block, _nodes, Node_List) \
1121 c2_nonstatic_field(Block, _succs, Block_Array) \ 1123 c2_nonstatic_field(Block, _succs, Block_Array) \
1122 c2_nonstatic_field(Block, _num_succs, uint) \ 1124 c2_nonstatic_field(Block, _num_succs, uint) \
1123 c2_nonstatic_field(Block, _pre_order, uint) \ 1125 c2_nonstatic_field(Block, _pre_order, uint) \
1380 declare_type(InstanceRefKlass, InstanceKlass) \ 1382 declare_type(InstanceRefKlass, InstanceKlass) \
1381 declare_type(ConstantPool, Metadata) \ 1383 declare_type(ConstantPool, Metadata) \
1382 declare_type(ConstantPoolCache, MetaspaceObj) \ 1384 declare_type(ConstantPoolCache, MetaspaceObj) \
1383 declare_type(MethodData, Metadata) \ 1385 declare_type(MethodData, Metadata) \
1384 declare_type(Method, Metadata) \ 1386 declare_type(Method, Metadata) \
1387 declare_type(MethodCounters, MetaspaceObj) \
1385 declare_type(ConstMethod, MetaspaceObj) \ 1388 declare_type(ConstMethod, MetaspaceObj) \
1386 \ 1389 \
1387 declare_toplevel_type(Symbol) \ 1390 declare_toplevel_type(Symbol) \
1388 declare_toplevel_type(Symbol*) \ 1391 declare_toplevel_type(Symbol*) \
1389 declare_toplevel_type(volatile Metadata*) \ 1392 declare_toplevel_type(volatile Metadata*) \
3114 } 3117 }
3115 } 3118 }
3116 // Search for the base type by peeling off const and * 3119 // Search for the base type by peeling off const and *
3117 size_t len = strlen(typeName); 3120 size_t len = strlen(typeName);
3118 if (typeName[len-1] == '*') { 3121 if (typeName[len-1] == '*') {
3119 char * s = new char[len]; 3122 char * s = NEW_C_HEAP_ARRAY(char, len, mtInternal);
3120 strncpy(s, typeName, len - 1); 3123 strncpy(s, typeName, len - 1);
3121 s[len-1] = '\0'; 3124 s[len-1] = '\0';
3122 // tty->print_cr("checking \"%s\" for \"%s\"", s, typeName); 3125 // tty->print_cr("checking \"%s\" for \"%s\"", s, typeName);
3123 if (recursiveFindType(origtypes, s, true) == 1) { 3126 if (recursiveFindType(origtypes, s, true) == 1) {
3124 delete [] s; 3127 FREE_C_HEAP_ARRAY(char, s, mtInternal);
3125 return 1; 3128 return 1;
3126 } 3129 }
3127 delete [] s; 3130 FREE_C_HEAP_ARRAY(char, s, mtInternal);
3128 } 3131 }
3129 const char* start = NULL; 3132 const char* start = NULL;
3130 if (strstr(typeName, "GrowableArray<") == typeName) { 3133 if (strstr(typeName, "GrowableArray<") == typeName) {
3131 start = typeName + strlen("GrowableArray<"); 3134 start = typeName + strlen("GrowableArray<");
3132 } else if (strstr(typeName, "Array<") == typeName) { 3135 } else if (strstr(typeName, "Array<") == typeName) {
3133 start = typeName + strlen("Array<"); 3136 start = typeName + strlen("Array<");
3134 } 3137 }
3135 if (start != NULL) { 3138 if (start != NULL) {
3136 const char * end = strrchr(typeName, '>'); 3139 const char * end = strrchr(typeName, '>');
3137 int len = end - start + 1; 3140 int len = end - start + 1;
3138 char * s = new char[len]; 3141 char * s = NEW_C_HEAP_ARRAY(char, len, mtInternal);
3139 strncpy(s, start, len - 1); 3142 strncpy(s, start, len - 1);
3140 s[len-1] = '\0'; 3143 s[len-1] = '\0';
3141 // tty->print_cr("checking \"%s\" for \"%s\"", s, typeName); 3144 // tty->print_cr("checking \"%s\" for \"%s\"", s, typeName);
3142 if (recursiveFindType(origtypes, s, true) == 1) { 3145 if (recursiveFindType(origtypes, s, true) == 1) {
3143 delete [] s; 3146 FREE_C_HEAP_ARRAY(char, s, mtInternal);
3144 return 1; 3147 return 1;
3145 } 3148 }
3146 delete [] s; 3149 FREE_C_HEAP_ARRAY(char, s, mtInternal);
3147 } 3150 }
3148 if (strstr(typeName, "const ") == typeName) { 3151 if (strstr(typeName, "const ") == typeName) {
3149 const char * s = typeName + strlen("const "); 3152 const char * s = typeName + strlen("const ");
3150 // tty->print_cr("checking \"%s\" for \"%s\"", s, typeName); 3153 // tty->print_cr("checking \"%s\" for \"%s\"", s, typeName);
3151 if (recursiveFindType(origtypes, s, true) == 1) { 3154 if (recursiveFindType(origtypes, s, true) == 1) {