comparison src/share/vm/runtime/vmStructs.cpp @ 7212:291ffc492eb6

Merge with http://hg.openjdk.java.net/hsx/hsx25/hotspot/
author Doug Simon <doug.simon@oracle.com>
date Fri, 14 Dec 2012 14:35:13 +0100
parents 2cb439954abf 5505fbbae3d3
children 989155e2d07a
comparison
equal deleted inserted replaced
7163:2ed8d74e5984 7212:291ffc492eb6
93 #include "runtime/javaCalls.hpp" 93 #include "runtime/javaCalls.hpp"
94 #include "runtime/perfMemory.hpp" 94 #include "runtime/perfMemory.hpp"
95 #include "runtime/serviceThread.hpp" 95 #include "runtime/serviceThread.hpp"
96 #include "runtime/sharedRuntime.hpp" 96 #include "runtime/sharedRuntime.hpp"
97 #include "runtime/stubRoutines.hpp" 97 #include "runtime/stubRoutines.hpp"
98 #include "runtime/thread.inline.hpp"
98 #include "runtime/virtualspace.hpp" 99 #include "runtime/virtualspace.hpp"
99 #include "runtime/vmStructs.hpp" 100 #include "runtime/vmStructs.hpp"
100 #include "utilities/array.hpp" 101 #include "utilities/array.hpp"
101 #include "utilities/globalDefinitions.hpp" 102 #include "utilities/globalDefinitions.hpp"
102 #include "utilities/hashtable.hpp" 103 #include "utilities/hashtable.hpp"
112 #ifdef TARGET_ARCH_arm 113 #ifdef TARGET_ARCH_arm
113 # include "vmStructs_arm.hpp" 114 # include "vmStructs_arm.hpp"
114 #endif 115 #endif
115 #ifdef TARGET_ARCH_ppc 116 #ifdef TARGET_ARCH_ppc
116 # include "vmStructs_ppc.hpp" 117 # include "vmStructs_ppc.hpp"
117 #endif
118 #ifdef TARGET_OS_FAMILY_linux
119 # include "thread_linux.inline.hpp"
120 #endif
121 #ifdef TARGET_OS_FAMILY_solaris
122 # include "thread_solaris.inline.hpp"
123 #endif
124 #ifdef TARGET_OS_FAMILY_windows
125 # include "thread_windows.inline.hpp"
126 #endif
127 #ifdef TARGET_OS_FAMILY_bsd
128 # include "thread_bsd.inline.hpp"
129 #endif 118 #endif
130 #ifdef TARGET_OS_ARCH_linux_x86 119 #ifdef TARGET_OS_ARCH_linux_x86
131 # include "vmStructs_linux_x86.hpp" 120 # include "vmStructs_linux_x86.hpp"
132 #endif 121 #endif
133 #ifdef TARGET_OS_ARCH_linux_sparc 122 #ifdef TARGET_OS_ARCH_linux_sparc
364 nonstatic_field(Method, _method_data, MethodData*) \ 353 nonstatic_field(Method, _method_data, MethodData*) \
365 nonstatic_field(Method, _interpreter_invocation_count, int) \ 354 nonstatic_field(Method, _interpreter_invocation_count, int) \
366 nonstatic_field(Method, _access_flags, AccessFlags) \ 355 nonstatic_field(Method, _access_flags, AccessFlags) \
367 nonstatic_field(Method, _vtable_index, int) \ 356 nonstatic_field(Method, _vtable_index, int) \
368 nonstatic_field(Method, _method_size, u2) \ 357 nonstatic_field(Method, _method_size, u2) \
369 nonstatic_field(Method, _max_stack, u2) \
370 nonstatic_field(Method, _max_locals, u2) \ 358 nonstatic_field(Method, _max_locals, u2) \
371 nonstatic_field(Method, _size_of_parameters, u2) \ 359 nonstatic_field(Method, _size_of_parameters, u2) \
372 nonstatic_field(Method, _interpreter_throwout_count, u2) \ 360 nonstatic_field(Method, _interpreter_throwout_count, u2) \
373 nonstatic_field(Method, _number_of_breakpoints, u2) \ 361 nonstatic_field(Method, _number_of_breakpoints, u2) \
374 nonstatic_field(Method, _invocation_counter, InvocationCounter) \ 362 nonstatic_field(Method, _invocation_counter, InvocationCounter) \
387 nonstatic_field(ConstMethod, _flags, jbyte) \ 375 nonstatic_field(ConstMethod, _flags, jbyte) \
388 nonstatic_field(ConstMethod, _code_size, u2) \ 376 nonstatic_field(ConstMethod, _code_size, u2) \
389 nonstatic_field(ConstMethod, _name_index, u2) \ 377 nonstatic_field(ConstMethod, _name_index, u2) \
390 nonstatic_field(ConstMethod, _signature_index, u2) \ 378 nonstatic_field(ConstMethod, _signature_index, u2) \
391 nonstatic_field(ConstMethod, _method_idnum, u2) \ 379 nonstatic_field(ConstMethod, _method_idnum, u2) \
392 nonstatic_field(ConstMethod, _generic_signature_index, u2) \ 380 nonstatic_field(ConstMethod, _max_stack, u2) \
393 nonstatic_field(ObjArrayKlass, _element_klass, Klass*) \ 381 nonstatic_field(ObjArrayKlass, _element_klass, Klass*) \
394 nonstatic_field(ObjArrayKlass, _bottom_klass, Klass*) \ 382 nonstatic_field(ObjArrayKlass, _bottom_klass, Klass*) \
395 volatile_nonstatic_field(Symbol, _refcount, int) \ 383 volatile_nonstatic_field(Symbol, _refcount, int) \
396 nonstatic_field(Symbol, _identity_hash, int) \ 384 nonstatic_field(Symbol, _identity_hash, int) \
397 nonstatic_field(Symbol, _length, unsigned short) \ 385 nonstatic_field(Symbol, _length, unsigned short) \
2105 declare_toplevel_type(FreeList<FreeChunk>) \ 2093 declare_toplevel_type(FreeList<FreeChunk>) \
2106 declare_toplevel_type(FreeBlockDictionary<Metablock>*) \ 2094 declare_toplevel_type(FreeBlockDictionary<Metablock>*) \
2107 declare_toplevel_type(FreeList<Metablock>*) \ 2095 declare_toplevel_type(FreeList<Metablock>*) \
2108 declare_toplevel_type(FreeList<Metablock>) \ 2096 declare_toplevel_type(FreeList<Metablock>) \
2109 declare_toplevel_type(MetablockTreeDictionary*) \ 2097 declare_toplevel_type(MetablockTreeDictionary*) \
2110 declare_type(MetablockTreeDictionary, FreeBlockDictionary<Metablock>) \ 2098 declare_type(MetablockTreeDictionary, FreeBlockDictionary<Metablock>)
2111 declare_type(MetablockTreeDictionary, FreeBlockDictionary<Metablock>)
2112 2099
2113 2100
2114 /* NOTE that we do not use the last_entry() macro here; it is used */ 2101 /* NOTE that we do not use the last_entry() macro here; it is used */
2115 /* in vmStructs_<os>_<cpu>.hpp's VM_TYPES_OS_CPU macro (and must be */ 2102 /* in vmStructs_<os>_<cpu>.hpp's VM_TYPES_OS_CPU macro (and must be */
2116 /* present there) */ 2103 /* present there) */
2290 \ 2277 \
2291 declare_constant(ConstMethod::_has_linenumber_table) \ 2278 declare_constant(ConstMethod::_has_linenumber_table) \
2292 declare_constant(ConstMethod::_has_checked_exceptions) \ 2279 declare_constant(ConstMethod::_has_checked_exceptions) \
2293 declare_constant(ConstMethod::_has_localvariable_table) \ 2280 declare_constant(ConstMethod::_has_localvariable_table) \
2294 declare_constant(ConstMethod::_has_exception_table) \ 2281 declare_constant(ConstMethod::_has_exception_table) \
2282 declare_constant(ConstMethod::_has_generic_signature) \
2295 \ 2283 \
2296 /*************************************/ \ 2284 /*************************************/ \
2297 /* InstanceKlass enum */ \ 2285 /* InstanceKlass enum */ \
2298 /*************************************/ \ 2286 /*************************************/ \
2299 \ 2287 \
3219 #endif 3207 #endif
3220 3208
3221 void vmStructs_init() { 3209 void vmStructs_init() {
3222 debug_only(VMStructs::init()); 3210 debug_only(VMStructs::init());
3223 } 3211 }
3212
3213 #ifndef PRODUCT
3214 void VMStructs::test() {
3215 // Check for duplicate entries in type array
3216 for (int i = 0; localHotSpotVMTypes[i].typeName != NULL; i++) {
3217 for (int j = i + 1; localHotSpotVMTypes[j].typeName != NULL; j++) {
3218 if (strcmp(localHotSpotVMTypes[i].typeName, localHotSpotVMTypes[j].typeName) == 0) {
3219 tty->print_cr("Duplicate entries for '%s'", localHotSpotVMTypes[i].typeName);
3220 assert(false, "Duplicate types in localHotSpotVMTypes array");
3221 }
3222 }
3223 }
3224 }
3225 #endif