1.1 --- a/src/share/vm/runtime/vmStructs.cpp Sat Sep 10 17:29:02 2011 -0700 1.2 +++ b/src/share/vm/runtime/vmStructs.cpp Sun Sep 11 14:48:24 2011 -0700 1.3 @@ -29,6 +29,11 @@ 1.4 #include "classfile/placeholders.hpp" 1.5 #include "classfile/symbolTable.hpp" 1.6 #include "classfile/systemDictionary.hpp" 1.7 +#include "ci/ciField.hpp" 1.8 +#include "ci/ciInstance.hpp" 1.9 +#include "ci/ciObjArrayKlass.hpp" 1.10 +#include "ci/ciMethodData.hpp" 1.11 +#include "ci/ciSymbol.hpp" 1.12 #include "code/codeBlob.hpp" 1.13 #include "code/codeCache.hpp" 1.14 #include "code/compressedStream.hpp" 1.15 @@ -38,6 +43,7 @@ 1.16 #include "code/stubs.hpp" 1.17 #include "code/vmreg.hpp" 1.18 #include "compiler/oopMap.hpp" 1.19 +#include "compiler/compileBroker.hpp" 1.20 #include "gc_implementation/concurrentMarkSweep/freeBlockDictionary.hpp" 1.21 #include "gc_implementation/shared/immutableSpace.hpp" 1.22 #include "gc_implementation/shared/markSweep.hpp" 1.23 @@ -90,6 +96,8 @@ 1.24 #include "oops/typeArrayOop.hpp" 1.25 #include "prims/jvmtiAgentThread.hpp" 1.26 #include "runtime/arguments.hpp" 1.27 +#include "runtime/deoptimization.hpp" 1.28 +#include "runtime/vframeArray.hpp" 1.29 #include "runtime/globals.hpp" 1.30 #include "runtime/java.hpp" 1.31 #include "runtime/javaCalls.hpp" 1.32 @@ -167,7 +175,23 @@ 1.33 #include "gc_implementation/parallelScavenge/vmStructs_parallelgc.hpp" 1.34 #endif 1.35 #ifdef COMPILER2 1.36 +#include "opto/addnode.hpp" 1.37 +#include "opto/block.hpp" 1.38 +#include "opto/callnode.hpp" 1.39 +#include "opto/cfgnode.hpp" 1.40 +#include "opto/chaitin.hpp" 1.41 +#include "opto/divnode.hpp" 1.42 +#include "opto/locknode.hpp" 1.43 +#include "opto/loopnode.hpp" 1.44 +#include "opto/machnode.hpp" 1.45 #include "opto/matcher.hpp" 1.46 +#include "opto/mulnode.hpp" 1.47 +#include "opto/phaseX.hpp" 1.48 +#include "opto/parse.hpp" 1.49 +#include "opto/regalloc.hpp" 1.50 +#include "opto/rootnode.hpp" 1.51 +#include "opto/subnode.hpp" 1.52 +#include "opto/vectornode.hpp" 1.53 #ifdef TARGET_ARCH_MODEL_x86_32 1.54 # include "adfiles/adGlobals_x86_32.hpp" 1.55 #endif 1.56 @@ -294,6 +318,10 @@ 1.57 nonstatic_field(instanceKlass, _methods_annotations, objArrayOop) \ 1.58 nonstatic_field(instanceKlass, _methods_parameter_annotations, objArrayOop) \ 1.59 nonstatic_field(instanceKlass, _methods_default_annotations, objArrayOop) \ 1.60 + nonstatic_field(instanceKlass, _dependencies, nmethodBucket*) \ 1.61 + nonstatic_field(nmethodBucket, _nmethod, nmethod*) \ 1.62 + nonstatic_field(nmethodBucket, _count, int) \ 1.63 + nonstatic_field(nmethodBucket, _next, nmethodBucket*) \ 1.64 nonstatic_field(Klass, _super_check_offset, juint) \ 1.65 nonstatic_field(Klass, _secondary_super_cache, klassOop) \ 1.66 nonstatic_field(Klass, _secondary_supers, objArrayOop) \ 1.67 @@ -312,17 +340,26 @@ 1.68 nonstatic_field(methodKlass, _alloc_size, juint) \ 1.69 nonstatic_field(methodDataOopDesc, _size, int) \ 1.70 nonstatic_field(methodDataOopDesc, _method, methodOop) \ 1.71 + nonstatic_field(methodDataOopDesc, _data_size, int) \ 1.72 + nonstatic_field(methodDataOopDesc, _data[0], intptr_t) \ 1.73 + nonstatic_field(methodDataOopDesc, _nof_decompiles, uint) \ 1.74 + nonstatic_field(methodDataOopDesc, _nof_overflow_recompiles, uint) \ 1.75 + nonstatic_field(methodDataOopDesc, _nof_overflow_traps, uint) \ 1.76 + nonstatic_field(methodDataOopDesc, _eflags, intx) \ 1.77 + nonstatic_field(methodDataOopDesc, _arg_local, intx) \ 1.78 + nonstatic_field(methodDataOopDesc, _arg_stack, intx) \ 1.79 + nonstatic_field(methodDataOopDesc, _arg_returned, intx) \ 1.80 nonstatic_field(methodOopDesc, _constMethod, constMethodOop) \ 1.81 nonstatic_field(methodOopDesc, _constants, constantPoolOop) \ 1.82 - c2_nonstatic_field(methodOopDesc, _method_data, methodDataOop) \ 1.83 - c2_nonstatic_field(methodOopDesc, _interpreter_invocation_count, int) \ 1.84 + nonstatic_field(methodOopDesc, _method_data, methodDataOop) \ 1.85 + nonstatic_field(methodOopDesc, _interpreter_invocation_count, int) \ 1.86 nonstatic_field(methodOopDesc, _access_flags, AccessFlags) \ 1.87 nonstatic_field(methodOopDesc, _vtable_index, int) \ 1.88 nonstatic_field(methodOopDesc, _method_size, u2) \ 1.89 nonstatic_field(methodOopDesc, _max_stack, u2) \ 1.90 nonstatic_field(methodOopDesc, _max_locals, u2) \ 1.91 nonstatic_field(methodOopDesc, _size_of_parameters, u2) \ 1.92 - c2_nonstatic_field(methodOopDesc, _interpreter_throwout_count, u2) \ 1.93 + nonstatic_field(methodOopDesc, _interpreter_throwout_count, u2) \ 1.94 nonstatic_field(methodOopDesc, _number_of_breakpoints, u2) \ 1.95 nonstatic_field(methodOopDesc, _invocation_counter, InvocationCounter) \ 1.96 nonstatic_field(methodOopDesc, _backedge_counter, InvocationCounter) \ 1.97 @@ -408,7 +445,7 @@ 1.98 static_field(Universe, _constantPoolCacheKlassObj, klassOop) \ 1.99 static_field(Universe, _compiledICHolderKlassObj, klassOop) \ 1.100 static_field(Universe, _systemObjArrayKlassObj, klassOop) \ 1.101 - static_field(Universe, _mirrors[0], oop) \ 1.102 + static_field(Universe, _mirrors[0], oop) \ 1.103 static_field(Universe, _main_thread_group, oop) \ 1.104 static_field(Universe, _system_thread_group, oop) \ 1.105 static_field(Universe, _the_empty_byte_array, typeArrayOop) \ 1.106 @@ -709,6 +746,15 @@ 1.107 nonstatic_field(LoaderConstraintEntry, _max_loaders, int) \ 1.108 nonstatic_field(LoaderConstraintEntry, _loaders, oop*) \ 1.109 \ 1.110 + /*******************/ \ 1.111 + /* GrowableArrays */ \ 1.112 + /*******************/ \ 1.113 + \ 1.114 + nonstatic_field(GenericGrowableArray, _len, int) \ 1.115 + nonstatic_field(GenericGrowableArray, _max, int) \ 1.116 + nonstatic_field(GenericGrowableArray, _arena, Arena*) \ 1.117 + nonstatic_field(GrowableArray<int>, _data, int*) \ 1.118 + \ 1.119 /********************************/ \ 1.120 /* CodeCache (NOTE: incomplete) */ \ 1.121 /********************************/ \ 1.122 @@ -814,11 +860,14 @@ 1.123 nonstatic_field(nmethod, _lock_count, jint) \ 1.124 nonstatic_field(nmethod, _stack_traversal_mark, long) \ 1.125 nonstatic_field(nmethod, _compile_id, int) \ 1.126 + nonstatic_field(nmethod, _exception_cache, ExceptionCache*) \ 1.127 nonstatic_field(nmethod, _marked_for_deoptimization, bool) \ 1.128 \ 1.129 nonstatic_field(RicochetBlob, _bounce_offset, int) \ 1.130 nonstatic_field(RicochetBlob, _exception_offset, int) \ 1.131 \ 1.132 + unchecked_c2_static_field(Deoptimization, _trap_reason_name, void*) \ 1.133 + \ 1.134 /********************************/ \ 1.135 /* JavaCalls (NOTE: incomplete) */ \ 1.136 /********************************/ \ 1.137 @@ -839,6 +888,9 @@ 1.138 static_field(Threads, _number_of_non_daemon_threads, int) \ 1.139 static_field(Threads, _return_code, int) \ 1.140 \ 1.141 + nonstatic_field(ThreadShadow, _pending_exception, oop) \ 1.142 + nonstatic_field(ThreadShadow, _exception_file, const char*) \ 1.143 + nonstatic_field(ThreadShadow, _exception_line, int) \ 1.144 volatile_nonstatic_field(Thread, _suspend_flags, uint32_t) \ 1.145 nonstatic_field(Thread, _active_handles, JNIHandleBlock*) \ 1.146 nonstatic_field(Thread, _tlab, ThreadLocalAllocBuffer) \ 1.147 @@ -850,10 +902,22 @@ 1.148 nonstatic_field(JavaThread, _next, JavaThread*) \ 1.149 nonstatic_field(JavaThread, _threadObj, oop) \ 1.150 nonstatic_field(JavaThread, _anchor, JavaFrameAnchor) \ 1.151 + nonstatic_field(JavaThread, _vm_result, oop) \ 1.152 + nonstatic_field(JavaThread, _vm_result_2, oop) \ 1.153 + nonstatic_field(JavaThread, _pending_async_exception, oop) \ 1.154 + volatile_nonstatic_field(JavaThread, _exception_oop, oop) \ 1.155 + volatile_nonstatic_field(JavaThread, _exception_pc, address) \ 1.156 + nonstatic_field(JavaThread, _is_compiling, bool) \ 1.157 + nonstatic_field(JavaThread, _special_runtime_exit_condition, JavaThread::AsyncRequests) \ 1.158 + nonstatic_field(JavaThread, _saved_exception_pc, address) \ 1.159 volatile_nonstatic_field(JavaThread, _thread_state, JavaThreadState) \ 1.160 nonstatic_field(JavaThread, _osthread, OSThread*) \ 1.161 nonstatic_field(JavaThread, _stack_base, address) \ 1.162 nonstatic_field(JavaThread, _stack_size, size_t) \ 1.163 + nonstatic_field(JavaThread, _vframe_array_head, vframeArray*) \ 1.164 + nonstatic_field(JavaThread, _vframe_array_last, vframeArray*) \ 1.165 + nonstatic_field(Thread, _resource_area, ResourceArea*) \ 1.166 + nonstatic_field(CompilerThread, _env, ciEnv*) \ 1.167 \ 1.168 /************/ \ 1.169 /* OSThread */ \ 1.170 @@ -903,7 +967,83 @@ 1.171 /* Runtime1 (NOTE: incomplete) */ \ 1.172 /*******************************/ \ 1.173 \ 1.174 - unchecked_c1_static_field(Runtime1, _blobs, sizeof(Runtime1::_blobs)) /* NOTE: no type */ \ 1.175 + unchecked_c1_static_field(Runtime1, _blobs, sizeof(Runtime1::_blobs)) /* NOTE: no type */ \ 1.176 + \ 1.177 + /**************/ \ 1.178 + /* allocation */ \ 1.179 + /**************/ \ 1.180 + \ 1.181 + nonstatic_field(Chunk, _next, Chunk*) \ 1.182 + nonstatic_field(Chunk, _len, const size_t) \ 1.183 + \ 1.184 + nonstatic_field(Arena, _first, Chunk*) \ 1.185 + nonstatic_field(Arena, _chunk, Chunk*) \ 1.186 + nonstatic_field(Arena, _hwm, char*) \ 1.187 + nonstatic_field(Arena, _max, char*) \ 1.188 + \ 1.189 + /************/ \ 1.190 + /* CI */ \ 1.191 + /************/ \ 1.192 + \ 1.193 + nonstatic_field(ciEnv, _system_dictionary_modification_counter, int) \ 1.194 + nonstatic_field(ciEnv, _compiler_data, void*) \ 1.195 + nonstatic_field(ciEnv, _failure_reason, const char*) \ 1.196 + nonstatic_field(ciEnv, _factory, ciObjectFactory*) \ 1.197 + nonstatic_field(ciEnv, _dependencies, Dependencies*) \ 1.198 + nonstatic_field(ciEnv, _task, CompileTask*) \ 1.199 + nonstatic_field(ciEnv, _arena, Arena*) \ 1.200 + \ 1.201 + nonstatic_field(ciObject, _handle, jobject) \ 1.202 + nonstatic_field(ciObject, _klass, ciKlass*) \ 1.203 + nonstatic_field(ciObject, _ident, uint) \ 1.204 + \ 1.205 + nonstatic_field(ciSymbol, _ident, uint) \ 1.206 + nonstatic_field(ciSymbol, _symbol, Symbol*) \ 1.207 + \ 1.208 + nonstatic_field(ciType, _basic_type, BasicType) \ 1.209 + \ 1.210 + nonstatic_field(ciKlass, _name, ciSymbol*) \ 1.211 + \ 1.212 + nonstatic_field(ciArrayKlass, _dimension, jint) \ 1.213 + \ 1.214 + nonstatic_field(ciObjArrayKlass, _element_klass, ciKlass*) \ 1.215 + nonstatic_field(ciObjArrayKlass, _base_element_klass, ciKlass*) \ 1.216 + \ 1.217 + nonstatic_field(ciInstanceKlass, _init_state, instanceKlass::ClassState) \ 1.218 + nonstatic_field(ciInstanceKlass, _is_shared, bool) \ 1.219 + \ 1.220 + nonstatic_field(ciMethod, _interpreter_invocation_count, int) \ 1.221 + nonstatic_field(ciMethod, _interpreter_throwout_count, int) \ 1.222 + \ 1.223 + nonstatic_field(ciMethodData, _data_size, int) \ 1.224 + nonstatic_field(ciMethodData, _state, u_char) \ 1.225 + nonstatic_field(ciMethodData, _extra_data_size, int) \ 1.226 + nonstatic_field(ciMethodData, _data, intptr_t*) \ 1.227 + nonstatic_field(ciMethodData, _hint_di, int) \ 1.228 + nonstatic_field(ciMethodData, _eflags, intx) \ 1.229 + nonstatic_field(ciMethodData, _arg_local, intx) \ 1.230 + nonstatic_field(ciMethodData, _arg_stack, intx) \ 1.231 + nonstatic_field(ciMethodData, _arg_returned, intx) \ 1.232 + nonstatic_field(ciMethodData, _current_mileage, int) \ 1.233 + nonstatic_field(ciMethodData, _orig, methodDataOopDesc) \ 1.234 + \ 1.235 + nonstatic_field(ciField, _holder, ciInstanceKlass*) \ 1.236 + nonstatic_field(ciField, _name, ciSymbol*) \ 1.237 + nonstatic_field(ciField, _signature, ciSymbol*) \ 1.238 + nonstatic_field(ciField, _offset, int) \ 1.239 + nonstatic_field(ciField, _is_constant, bool) \ 1.240 + nonstatic_field(ciField, _constant_value, ciConstant) \ 1.241 + \ 1.242 + nonstatic_field(ciObjectFactory, _ci_objects, GrowableArray<ciObject*>*) \ 1.243 + nonstatic_field(ciObjectFactory, _symbols, GrowableArray<ciSymbol*>*) \ 1.244 + nonstatic_field(ciObjectFactory, _unloaded_methods, GrowableArray<ciMethod*>*) \ 1.245 + \ 1.246 + nonstatic_field(ciConstant, _type, BasicType) \ 1.247 + nonstatic_field(ciConstant, _value._int, jint) \ 1.248 + nonstatic_field(ciConstant, _value._long, jlong) \ 1.249 + nonstatic_field(ciConstant, _value._float, jfloat) \ 1.250 + nonstatic_field(ciConstant, _value._double, jdouble) \ 1.251 + nonstatic_field(ciConstant, _value._object, ciObject*) \ 1.252 \ 1.253 /************/ \ 1.254 /* Monitors */ \ 1.255 @@ -925,7 +1065,114 @@ 1.256 /* Matcher (C2 only) */ \ 1.257 /*********************/ \ 1.258 \ 1.259 - unchecked_c2_static_field(Matcher, _regEncode, sizeof(Matcher::_regEncode)) /* NOTE: no type */ \ 1.260 + unchecked_c2_static_field(Matcher, _regEncode, sizeof(Matcher::_regEncode)) /* NOTE: no type */ \ 1.261 + \ 1.262 + c2_nonstatic_field(Node, _in, Node**) \ 1.263 + c2_nonstatic_field(Node, _out, Node**) \ 1.264 + c2_nonstatic_field(Node, _cnt, node_idx_t) \ 1.265 + c2_nonstatic_field(Node, _max, node_idx_t) \ 1.266 + c2_nonstatic_field(Node, _outcnt, node_idx_t) \ 1.267 + c2_nonstatic_field(Node, _outmax, node_idx_t) \ 1.268 + c2_nonstatic_field(Node, _idx, const node_idx_t) \ 1.269 + c2_nonstatic_field(Node, _class_id, jushort) \ 1.270 + c2_nonstatic_field(Node, _flags, jushort) \ 1.271 + \ 1.272 + c2_nonstatic_field(Compile, _root, RootNode*) \ 1.273 + c2_nonstatic_field(Compile, _unique, uint) \ 1.274 + c2_nonstatic_field(Compile, _entry_bci, int) \ 1.275 + c2_nonstatic_field(Compile, _top, Node*) \ 1.276 + c2_nonstatic_field(Compile, _cfg, PhaseCFG*) \ 1.277 + c2_nonstatic_field(Compile, _regalloc, PhaseRegAlloc*) \ 1.278 + c2_nonstatic_field(Compile, _method, ciMethod*) \ 1.279 + c2_nonstatic_field(Compile, _compile_id, const int) \ 1.280 + c2_nonstatic_field(Compile, _save_argument_registers, const bool) \ 1.281 + c2_nonstatic_field(Compile, _subsume_loads, const bool) \ 1.282 + c2_nonstatic_field(Compile, _do_escape_analysis, const bool) \ 1.283 + c2_nonstatic_field(Compile, _ilt, InlineTree*) \ 1.284 + \ 1.285 + c2_nonstatic_field(InlineTree, _caller_jvms, JVMState*) \ 1.286 + c2_nonstatic_field(InlineTree, _method, ciMethod*) \ 1.287 + c2_nonstatic_field(InlineTree, _caller_tree, InlineTree*) \ 1.288 + c2_nonstatic_field(InlineTree, _subtrees, GrowableArray<InlineTree*>) \ 1.289 + \ 1.290 + c2_nonstatic_field(OptoRegPair, _first, short) \ 1.291 + c2_nonstatic_field(OptoRegPair, _second, short) \ 1.292 + \ 1.293 + c2_nonstatic_field(JVMState, _caller, JVMState*) \ 1.294 + c2_nonstatic_field(JVMState, _depth, uint) \ 1.295 + c2_nonstatic_field(JVMState, _locoff, uint) \ 1.296 + c2_nonstatic_field(JVMState, _stkoff, uint) \ 1.297 + c2_nonstatic_field(JVMState, _monoff, uint) \ 1.298 + c2_nonstatic_field(JVMState, _scloff, uint) \ 1.299 + c2_nonstatic_field(JVMState, _endoff, uint) \ 1.300 + c2_nonstatic_field(JVMState, _sp, uint) \ 1.301 + c2_nonstatic_field(JVMState, _bci, int) \ 1.302 + c2_nonstatic_field(JVMState, _method, ciMethod*) \ 1.303 + c2_nonstatic_field(JVMState, _map, SafePointNode*) \ 1.304 + \ 1.305 + c2_nonstatic_field(SafePointNode, _jvms, JVMState* const) \ 1.306 + \ 1.307 + c2_nonstatic_field(MachSafePointNode, _jvms, JVMState*) \ 1.308 + c2_nonstatic_field(MachSafePointNode, _jvmadj, uint) \ 1.309 + \ 1.310 + c2_nonstatic_field(MachIfNode, _prob, jfloat) \ 1.311 + c2_nonstatic_field(MachIfNode, _fcnt, jfloat) \ 1.312 + \ 1.313 + c2_nonstatic_field(CallNode, _entry_point, address) \ 1.314 + \ 1.315 + c2_nonstatic_field(CallJavaNode, _method, ciMethod*) \ 1.316 + \ 1.317 + c2_nonstatic_field(CallRuntimeNode, _name, const char*) \ 1.318 + \ 1.319 + c2_nonstatic_field(CallStaticJavaNode, _name, const char*) \ 1.320 + \ 1.321 + c2_nonstatic_field(MachCallJavaNode, _method, ciMethod*) \ 1.322 + c2_nonstatic_field(MachCallJavaNode, _bci, int) \ 1.323 + \ 1.324 + c2_nonstatic_field(MachCallStaticJavaNode, _name, const char*) \ 1.325 + \ 1.326 + c2_nonstatic_field(MachCallRuntimeNode, _name, const char*) \ 1.327 + \ 1.328 + c2_nonstatic_field(PhaseCFG, _num_blocks, uint) \ 1.329 + c2_nonstatic_field(PhaseCFG, _blocks, Block_List) \ 1.330 + c2_nonstatic_field(PhaseCFG, _bbs, Block_Array) \ 1.331 + c2_nonstatic_field(PhaseCFG, _broot, Block*) \ 1.332 + \ 1.333 + c2_nonstatic_field(PhaseRegAlloc, _node_regs, OptoRegPair*) \ 1.334 + c2_nonstatic_field(PhaseRegAlloc, _node_regs_max_index, uint) \ 1.335 + c2_nonstatic_field(PhaseRegAlloc, _framesize, uint) \ 1.336 + c2_nonstatic_field(PhaseRegAlloc, _max_reg, OptoReg::Name) \ 1.337 + \ 1.338 + c2_nonstatic_field(PhaseChaitin, _trip_cnt, int) \ 1.339 + c2_nonstatic_field(PhaseChaitin, _alternate, int) \ 1.340 + c2_nonstatic_field(PhaseChaitin, _lo_degree, uint) \ 1.341 + c2_nonstatic_field(PhaseChaitin, _lo_stk_degree, uint) \ 1.342 + c2_nonstatic_field(PhaseChaitin, _hi_degree, uint) \ 1.343 + c2_nonstatic_field(PhaseChaitin, _simplified, uint) \ 1.344 + c2_nonstatic_field(PhaseChaitin, _maxlrg, uint) \ 1.345 + \ 1.346 + c2_nonstatic_field(Block, _nodes, Node_List) \ 1.347 + c2_nonstatic_field(Block, _succs, Block_Array) \ 1.348 + c2_nonstatic_field(Block, _num_succs, uint) \ 1.349 + c2_nonstatic_field(Block, _pre_order, uint) \ 1.350 + c2_nonstatic_field(Block, _dom_depth, uint) \ 1.351 + c2_nonstatic_field(Block, _idom, Block*) \ 1.352 + c2_nonstatic_field(Block, _freq, jfloat) \ 1.353 + \ 1.354 + c2_nonstatic_field(CFGElement, _freq, jfloat) \ 1.355 + \ 1.356 + c2_nonstatic_field(Block_List, _cnt, uint) \ 1.357 + \ 1.358 + c2_nonstatic_field(Block_Array, _size, uint) \ 1.359 + c2_nonstatic_field(Block_Array, _blocks, Block**) \ 1.360 + c2_nonstatic_field(Block_Array, _arena, Arena*) \ 1.361 + \ 1.362 + c2_nonstatic_field(Node_List, _cnt, uint) \ 1.363 + \ 1.364 + c2_nonstatic_field(Node_Array, _max, uint) \ 1.365 + c2_nonstatic_field(Node_Array, _nodes, Node**) \ 1.366 + c2_nonstatic_field(Node_Array, _a, Arena*) \ 1.367 + \ 1.368 \ 1.369 /*********************/ \ 1.370 /* -XX flags */ \ 1.371 @@ -935,6 +1182,7 @@ 1.372 nonstatic_field(Flag, name, const char*) \ 1.373 unchecked_nonstatic_field(Flag, addr, sizeof(void*)) /* NOTE: no type */ \ 1.374 nonstatic_field(Flag, kind, const char*) \ 1.375 + nonstatic_field(Flag, origin, FlagValueOrigin) \ 1.376 static_field(Flag, flags, Flag*) \ 1.377 static_field(Flag, numFlags, size_t) \ 1.378 \ 1.379 @@ -952,7 +1200,14 @@ 1.380 nonstatic_field(JDK_Version, _partially_initialized, bool) \ 1.381 nonstatic_field(JDK_Version, _major, unsigned char) \ 1.382 \ 1.383 + /*************************/ \ 1.384 + /* JVMTI */ \ 1.385 + /*************************/ \ 1.386 \ 1.387 + static_field(JvmtiExport, _can_access_local_variables, bool) \ 1.388 + static_field(JvmtiExport, _can_hotswap_or_post_breakpoint, bool) \ 1.389 + static_field(JvmtiExport, _can_post_on_exceptions, bool) \ 1.390 + static_field(JvmtiExport, _can_walk_any_space, bool) \ 1.391 \ 1.392 /*************/ \ 1.393 /* Arguments */ \ 1.394 @@ -978,10 +1233,26 @@ 1.395 /* Miscellaneous fields */ \ 1.396 /************************/ \ 1.397 \ 1.398 - nonstatic_field(AccessFlags, _flags, jint) \ 1.399 - nonstatic_field(elapsedTimer, _counter, jlong) \ 1.400 - nonstatic_field(elapsedTimer, _active, bool) \ 1.401 - nonstatic_field(InvocationCounter, _counter, unsigned int) 1.402 + nonstatic_field(CompileTask, _method, jobject) \ 1.403 + nonstatic_field(CompileTask, _osr_bci, int) \ 1.404 + nonstatic_field(CompileTask, _comp_level, int) \ 1.405 + nonstatic_field(CompileTask, _compile_id, uint) \ 1.406 + nonstatic_field(CompileTask, _next, CompileTask*) \ 1.407 + nonstatic_field(CompileTask, _prev, CompileTask*) \ 1.408 + \ 1.409 + nonstatic_field(vframeArray, _next, vframeArray*) \ 1.410 + nonstatic_field(vframeArray, _original, frame) \ 1.411 + nonstatic_field(vframeArray, _caller, frame) \ 1.412 + nonstatic_field(vframeArray, _frames, int) \ 1.413 + \ 1.414 + nonstatic_field(vframeArrayElement, _frame, frame) \ 1.415 + nonstatic_field(vframeArrayElement, _bci, int) \ 1.416 + nonstatic_field(vframeArrayElement, _method, methodOop) \ 1.417 + \ 1.418 + nonstatic_field(AccessFlags, _flags, jint) \ 1.419 + nonstatic_field(elapsedTimer, _counter, jlong) \ 1.420 + nonstatic_field(elapsedTimer, _active, bool) \ 1.421 + nonstatic_field(InvocationCounter, _counter, unsigned int) 1.422 1.423 /* NOTE that we do not use the last_entry() macro here; it is used */ 1.424 /* in vmStructs_<os>_<cpu>.hpp's VM_STRUCTS_OS_CPU macro (and must */ 1.425 @@ -1061,11 +1332,14 @@ 1.426 /* and are valid types for Fields. */ \ 1.427 /*********************************************************************/ \ 1.428 declare_integer_type(bool) \ 1.429 + declare_integer_type(short) \ 1.430 declare_integer_type(int) \ 1.431 declare_integer_type(long) \ 1.432 declare_integer_type(char) \ 1.433 declare_unsigned_integer_type(unsigned char) \ 1.434 + declare_unsigned_integer_type(u_char) \ 1.435 declare_unsigned_integer_type(unsigned int) \ 1.436 + declare_unsigned_integer_type(uint) \ 1.437 declare_unsigned_integer_type(unsigned short) \ 1.438 declare_unsigned_integer_type(unsigned long) \ 1.439 /* The compiler thinks this is a different type than */ \ 1.440 @@ -1080,7 +1354,6 @@ 1.441 declare_toplevel_type(int*) \ 1.442 declare_toplevel_type(char*) \ 1.443 declare_toplevel_type(char**) \ 1.444 - declare_toplevel_type(const char*) \ 1.445 declare_toplevel_type(u_char*) \ 1.446 declare_toplevel_type(unsigned char*) \ 1.447 \ 1.448 @@ -1092,14 +1365,12 @@ 1.449 \ 1.450 declare_unsigned_integer_type(size_t) \ 1.451 declare_integer_type(ssize_t) \ 1.452 - declare_unsigned_integer_type(const size_t) \ 1.453 declare_integer_type(intx) \ 1.454 declare_integer_type(intptr_t) \ 1.455 declare_unsigned_integer_type(uintx) \ 1.456 declare_unsigned_integer_type(uintptr_t) \ 1.457 declare_unsigned_integer_type(uint32_t) \ 1.458 declare_unsigned_integer_type(uint64_t) \ 1.459 - declare_integer_type(const int) \ 1.460 \ 1.461 /*******************************************************************************/ \ 1.462 /* OopDesc and Klass hierarchies (NOTE: missing methodDataOop-related classes) */ \ 1.463 @@ -1125,8 +1396,8 @@ 1.464 declare_type(klassKlass, Klass) \ 1.465 declare_type(klassOopDesc, oopDesc) \ 1.466 declare_type(markOopDesc, oopDesc) \ 1.467 - declare_type(methodDataKlass, Klass) \ 1.468 - declare_type(methodDataOopDesc, oopDesc) \ 1.469 + declare_type(methodDataKlass, Klass) \ 1.470 + declare_type(methodDataOopDesc, oopDesc) \ 1.471 declare_type(methodKlass, Klass) \ 1.472 declare_type(constMethodKlass, Klass) \ 1.473 declare_type(methodOopDesc, oopDesc) \ 1.474 @@ -1140,6 +1411,8 @@ 1.475 declare_toplevel_type(Symbol) \ 1.476 declare_toplevel_type(Symbol*) \ 1.477 \ 1.478 + declare_toplevel_type(nmethodBucket) \ 1.479 + \ 1.480 /********/ \ 1.481 /* Oops */ \ 1.482 /********/ \ 1.483 @@ -1207,7 +1480,6 @@ 1.484 declare_toplevel_type(GenerationSpec) \ 1.485 declare_toplevel_type(HeapWord) \ 1.486 declare_toplevel_type(MemRegion) \ 1.487 - declare_toplevel_type(const MemRegion) \ 1.488 declare_toplevel_type(PermanentGenerationSpec) \ 1.489 declare_toplevel_type(ThreadLocalAllocBuffer) \ 1.490 declare_toplevel_type(VirtualSpace) \ 1.491 @@ -1268,6 +1540,12 @@ 1.492 declare_toplevel_type(SystemDictionary) \ 1.493 declare_toplevel_type(ProtectionDomainEntry) \ 1.494 \ 1.495 + declare_toplevel_type(GenericGrowableArray) \ 1.496 + declare_toplevel_type(GrowableArray<int>) \ 1.497 + declare_toplevel_type(Arena) \ 1.498 + declare_type(ResourceArea, Arena) \ 1.499 + declare_toplevel_type(Chunk) \ 1.500 + \ 1.501 /***********************************************************/ \ 1.502 /* Thread hierarchy (needed for run-time type information) */ \ 1.503 /***********************************************************/ \ 1.504 @@ -1280,7 +1558,7 @@ 1.505 declare_type(JavaThread, Thread) \ 1.506 declare_type(JvmtiAgentThread, JavaThread) \ 1.507 declare_type(ServiceThread, JavaThread) \ 1.508 - declare_type(CompilerThread, JavaThread) \ 1.509 + declare_type(CompilerThread, JavaThread) \ 1.510 declare_toplevel_type(OSThread) \ 1.511 declare_toplevel_type(JavaFrameAnchor) \ 1.512 \ 1.513 @@ -1346,6 +1624,11 @@ 1.514 /***************************************/ \ 1.515 \ 1.516 declare_toplevel_type(PcDesc) \ 1.517 + declare_toplevel_type(ExceptionCache) \ 1.518 + declare_toplevel_type(PcDescCache) \ 1.519 + declare_toplevel_type(Dependencies) \ 1.520 + declare_toplevel_type(CompileTask) \ 1.521 + declare_toplevel_type(Deoptimization) \ 1.522 \ 1.523 /************************/ \ 1.524 /* OopMap and OopMapSet */ \ 1.525 @@ -1372,6 +1655,7 @@ 1.526 \ 1.527 declare_toplevel_type(JNIHandles) \ 1.528 declare_toplevel_type(JNIHandleBlock) \ 1.529 + declare_toplevel_type(jobject) \ 1.530 \ 1.531 /**********************/ \ 1.532 /* Runtime1 (C1 only) */ \ 1.533 @@ -1392,9 +1676,349 @@ 1.534 /* Matcher (C2 only) */ \ 1.535 /*********************/ \ 1.536 \ 1.537 - /* NOTE: this is not really a toplevel type, but we only need */ \ 1.538 - /* this one -- FIXME later if necessary */ \ 1.539 declare_c2_toplevel_type(Matcher) \ 1.540 + declare_c2_toplevel_type(Compile) \ 1.541 + declare_c2_toplevel_type(InlineTree) \ 1.542 + declare_c2_toplevel_type(OptoRegPair) \ 1.543 + declare_c2_toplevel_type(JVMState) \ 1.544 + declare_c2_toplevel_type(Phase) \ 1.545 + declare_c2_type(PhaseCFG, Phase) \ 1.546 + declare_c2_type(PhaseRegAlloc, Phase) \ 1.547 + declare_c2_type(PhaseChaitin, PhaseRegAlloc) \ 1.548 + declare_c2_toplevel_type(CFGElement) \ 1.549 + declare_c2_type(Block, CFGElement) \ 1.550 + declare_c2_toplevel_type(Block_Array) \ 1.551 + declare_c2_type(Block_List, Block_Array) \ 1.552 + declare_c2_toplevel_type(Node_Array) \ 1.553 + declare_c2_type(Node_List, Node_Array) \ 1.554 + declare_c2_type(Unique_Node_List, Node_List) \ 1.555 + declare_c2_toplevel_type(Node) \ 1.556 + declare_c2_type(AddNode, Node) \ 1.557 + declare_c2_type(AddINode, AddNode) \ 1.558 + declare_c2_type(AddLNode, AddNode) \ 1.559 + declare_c2_type(AddFNode, AddNode) \ 1.560 + declare_c2_type(AddDNode, AddNode) \ 1.561 + declare_c2_type(AddPNode, Node) \ 1.562 + declare_c2_type(OrINode, AddNode) \ 1.563 + declare_c2_type(OrLNode, AddNode) \ 1.564 + declare_c2_type(XorINode, AddNode) \ 1.565 + declare_c2_type(XorLNode, AddNode) \ 1.566 + declare_c2_type(MaxNode, AddNode) \ 1.567 + declare_c2_type(MaxINode, MaxNode) \ 1.568 + declare_c2_type(MinINode, MaxNode) \ 1.569 + declare_c2_type(StartNode, MultiNode) \ 1.570 + declare_c2_type(StartOSRNode, StartNode) \ 1.571 + declare_c2_type(ParmNode, ProjNode) \ 1.572 + declare_c2_type(ReturnNode, Node) \ 1.573 + declare_c2_type(RethrowNode, Node) \ 1.574 + declare_c2_type(TailCallNode, ReturnNode) \ 1.575 + declare_c2_type(TailJumpNode, ReturnNode) \ 1.576 + declare_c2_type(SafePointNode, MultiNode) \ 1.577 + declare_c2_type(CallNode, SafePointNode) \ 1.578 + declare_c2_type(CallJavaNode, CallNode) \ 1.579 + declare_c2_type(CallStaticJavaNode, CallJavaNode) \ 1.580 + declare_c2_type(CallDynamicJavaNode, CallJavaNode) \ 1.581 + declare_c2_type(CallRuntimeNode, CallNode) \ 1.582 + declare_c2_type(CallLeafNode, CallRuntimeNode) \ 1.583 + declare_c2_type(CallLeafNoFPNode, CallLeafNode) \ 1.584 + declare_c2_type(AllocateNode, CallNode) \ 1.585 + declare_c2_type(AllocateArrayNode, AllocateNode) \ 1.586 + declare_c2_type(LockNode, AbstractLockNode) \ 1.587 + declare_c2_type(UnlockNode, AbstractLockNode) \ 1.588 + declare_c2_type(FastLockNode, CmpNode) \ 1.589 + declare_c2_type(FastUnlockNode, CmpNode) \ 1.590 + declare_c2_type(RegionNode, Node) \ 1.591 + declare_c2_type(JProjNode, ProjNode) \ 1.592 + declare_c2_type(PhiNode, TypeNode) \ 1.593 + declare_c2_type(GotoNode, Node) \ 1.594 + declare_c2_type(CProjNode, ProjNode) \ 1.595 + declare_c2_type(MultiBranchNode, MultiNode) \ 1.596 + declare_c2_type(IfNode, MultiBranchNode) \ 1.597 + declare_c2_type(IfTrueNode, CProjNode) \ 1.598 + declare_c2_type(IfFalseNode, CProjNode) \ 1.599 + declare_c2_type(PCTableNode, MultiBranchNode) \ 1.600 + declare_c2_type(JumpNode, PCTableNode) \ 1.601 + declare_c2_type(JumpProjNode, JProjNode) \ 1.602 + declare_c2_type(CatchNode, PCTableNode) \ 1.603 + declare_c2_type(CatchProjNode, CProjNode) \ 1.604 + declare_c2_type(CreateExNode, TypeNode) \ 1.605 + declare_c2_type(ClearArrayNode, Node) \ 1.606 + declare_c2_type(NeverBranchNode, MultiBranchNode) \ 1.607 + declare_c2_type(ConNode, TypeNode) \ 1.608 + declare_c2_type(ConINode, ConNode) \ 1.609 + declare_c2_type(ConPNode, ConNode) \ 1.610 + declare_c2_type(ConNNode, ConNode) \ 1.611 + declare_c2_type(ConLNode, ConNode) \ 1.612 + declare_c2_type(ConFNode, ConNode) \ 1.613 + declare_c2_type(ConDNode, ConNode) \ 1.614 + declare_c2_type(BinaryNode, Node) \ 1.615 + declare_c2_type(CMoveNode, TypeNode) \ 1.616 + declare_c2_type(CMoveDNode, CMoveNode) \ 1.617 + declare_c2_type(CMoveFNode, CMoveNode) \ 1.618 + declare_c2_type(CMoveINode, CMoveNode) \ 1.619 + declare_c2_type(CMoveLNode, CMoveNode) \ 1.620 + declare_c2_type(CMovePNode, CMoveNode) \ 1.621 + declare_c2_type(CMoveNNode, CMoveNode) \ 1.622 + declare_c2_type(EncodePNode, TypeNode) \ 1.623 + declare_c2_type(DecodeNNode, TypeNode) \ 1.624 + declare_c2_type(ConstraintCastNode, TypeNode) \ 1.625 + declare_c2_type(CastIINode, ConstraintCastNode) \ 1.626 + declare_c2_type(CastPPNode, ConstraintCastNode) \ 1.627 + declare_c2_type(CheckCastPPNode, TypeNode) \ 1.628 + declare_c2_type(Conv2BNode, Node) \ 1.629 + declare_c2_type(ConvD2FNode, Node) \ 1.630 + declare_c2_type(ConvD2INode, Node) \ 1.631 + declare_c2_type(ConvD2LNode, Node) \ 1.632 + declare_c2_type(ConvF2DNode, Node) \ 1.633 + declare_c2_type(ConvF2INode, Node) \ 1.634 + declare_c2_type(ConvF2LNode, Node) \ 1.635 + declare_c2_type(ConvI2DNode, Node) \ 1.636 + declare_c2_type(ConvI2FNode, Node) \ 1.637 + declare_c2_type(ConvI2LNode, TypeNode) \ 1.638 + declare_c2_type(ConvL2DNode, Node) \ 1.639 + declare_c2_type(ConvL2FNode, Node) \ 1.640 + declare_c2_type(ConvL2INode, Node) \ 1.641 + declare_c2_type(CastX2PNode, Node) \ 1.642 + declare_c2_type(CastP2XNode, Node) \ 1.643 + declare_c2_type(MemBarNode, MultiNode) \ 1.644 + declare_c2_type(MemBarAcquireNode, MemBarNode) \ 1.645 + declare_c2_type(MemBarReleaseNode, MemBarNode) \ 1.646 + declare_c2_type(MemBarVolatileNode, MemBarNode) \ 1.647 + declare_c2_type(MemBarCPUOrderNode, MemBarNode) \ 1.648 + declare_c2_type(InitializeNode, MemBarNode) \ 1.649 + declare_c2_type(ThreadLocalNode, Node) \ 1.650 + declare_c2_type(Opaque1Node, Node) \ 1.651 + declare_c2_type(Opaque2Node, Node) \ 1.652 + declare_c2_type(PartialSubtypeCheckNode, Node) \ 1.653 + declare_c2_type(MoveI2FNode, Node) \ 1.654 + declare_c2_type(MoveL2DNode, Node) \ 1.655 + declare_c2_type(MoveF2INode, Node) \ 1.656 + declare_c2_type(MoveD2LNode, Node) \ 1.657 + declare_c2_type(DivINode, Node) \ 1.658 + declare_c2_type(DivLNode, Node) \ 1.659 + declare_c2_type(DivFNode, Node) \ 1.660 + declare_c2_type(DivDNode, Node) \ 1.661 + declare_c2_type(ModINode, Node) \ 1.662 + declare_c2_type(ModLNode, Node) \ 1.663 + declare_c2_type(ModFNode, Node) \ 1.664 + declare_c2_type(ModDNode, Node) \ 1.665 + declare_c2_type(DivModNode, MultiNode) \ 1.666 + declare_c2_type(DivModINode, DivModNode) \ 1.667 + declare_c2_type(DivModLNode, DivModNode) \ 1.668 + declare_c2_type(BoxLockNode, Node) \ 1.669 + declare_c2_type(LoopNode, RegionNode) \ 1.670 + declare_c2_type(CountedLoopNode, LoopNode) \ 1.671 + declare_c2_type(CountedLoopEndNode, IfNode) \ 1.672 + declare_c2_type(MachNode, Node) \ 1.673 + declare_c2_type(MachIdealNode, MachNode) \ 1.674 + declare_c2_type(MachTypeNode, MachNode) \ 1.675 + declare_c2_type(MachBreakpointNode, MachIdealNode) \ 1.676 + declare_c2_type(MachUEPNode, MachIdealNode) \ 1.677 + declare_c2_type(MachPrologNode, MachIdealNode) \ 1.678 + declare_c2_type(MachEpilogNode, MachIdealNode) \ 1.679 + declare_c2_type(MachNopNode, MachIdealNode) \ 1.680 + declare_c2_type(MachSpillCopyNode, MachIdealNode) \ 1.681 + declare_c2_type(MachNullCheckNode, MachIdealNode) \ 1.682 + declare_c2_type(MachProjNode, ProjNode) \ 1.683 + declare_c2_type(MachIfNode, MachNode) \ 1.684 + declare_c2_type(MachFastLockNode, MachNode) \ 1.685 + declare_c2_type(MachReturnNode, MachNode) \ 1.686 + declare_c2_type(MachSafePointNode, MachReturnNode) \ 1.687 + declare_c2_type(MachCallNode, MachSafePointNode) \ 1.688 + declare_c2_type(MachCallJavaNode, MachCallNode) \ 1.689 + declare_c2_type(MachCallStaticJavaNode, MachCallJavaNode) \ 1.690 + declare_c2_type(MachCallDynamicJavaNode, MachCallJavaNode) \ 1.691 + declare_c2_type(MachCallRuntimeNode, MachCallNode) \ 1.692 + declare_c2_type(MachHaltNode, MachReturnNode) \ 1.693 + declare_c2_type(MachTempNode, MachNode) \ 1.694 + declare_c2_type(MemNode, Node) \ 1.695 + declare_c2_type(MergeMemNode, Node) \ 1.696 + declare_c2_type(LoadNode, MemNode) \ 1.697 + declare_c2_type(LoadBNode, LoadNode) \ 1.698 + declare_c2_type(LoadUSNode, LoadNode) \ 1.699 + declare_c2_type(LoadINode, LoadNode) \ 1.700 + declare_c2_type(LoadRangeNode, LoadINode) \ 1.701 + declare_c2_type(LoadLNode, LoadNode) \ 1.702 + declare_c2_type(LoadL_unalignedNode, LoadLNode) \ 1.703 + declare_c2_type(LoadFNode, LoadNode) \ 1.704 + declare_c2_type(LoadDNode, LoadNode) \ 1.705 + declare_c2_type(LoadD_unalignedNode, LoadDNode) \ 1.706 + declare_c2_type(LoadPNode, LoadNode) \ 1.707 + declare_c2_type(LoadNNode, LoadNode) \ 1.708 + declare_c2_type(LoadKlassNode, LoadPNode) \ 1.709 + declare_c2_type(LoadNKlassNode, LoadNNode) \ 1.710 + declare_c2_type(LoadSNode, LoadNode) \ 1.711 + declare_c2_type(StoreNode, MemNode) \ 1.712 + declare_c2_type(StoreBNode, StoreNode) \ 1.713 + declare_c2_type(StoreCNode, StoreNode) \ 1.714 + declare_c2_type(StoreINode, StoreNode) \ 1.715 + declare_c2_type(StoreLNode, StoreNode) \ 1.716 + declare_c2_type(StoreFNode, StoreNode) \ 1.717 + declare_c2_type(StoreDNode, StoreNode) \ 1.718 + declare_c2_type(StorePNode, StoreNode) \ 1.719 + declare_c2_type(StoreNNode, StoreNode) \ 1.720 + declare_c2_type(StoreCMNode, StoreNode) \ 1.721 + declare_c2_type(LoadPLockedNode, LoadPNode) \ 1.722 + declare_c2_type(LoadLLockedNode, LoadLNode) \ 1.723 + declare_c2_type(SCMemProjNode, ProjNode) \ 1.724 + declare_c2_type(LoadStoreNode, Node) \ 1.725 + declare_c2_type(StorePConditionalNode, LoadStoreNode) \ 1.726 + declare_c2_type(StoreLConditionalNode, LoadStoreNode) \ 1.727 + declare_c2_type(CompareAndSwapLNode, LoadStoreNode) \ 1.728 + declare_c2_type(CompareAndSwapINode, LoadStoreNode) \ 1.729 + declare_c2_type(CompareAndSwapPNode, LoadStoreNode) \ 1.730 + declare_c2_type(CompareAndSwapNNode, LoadStoreNode) \ 1.731 + declare_c2_type(PrefetchReadNode, Node) \ 1.732 + declare_c2_type(PrefetchWriteNode, Node) \ 1.733 + declare_c2_type(MulNode, Node) \ 1.734 + declare_c2_type(MulINode, MulNode) \ 1.735 + declare_c2_type(MulLNode, MulNode) \ 1.736 + declare_c2_type(MulFNode, MulNode) \ 1.737 + declare_c2_type(MulDNode, MulNode) \ 1.738 + declare_c2_type(MulHiLNode, Node) \ 1.739 + declare_c2_type(AndINode, MulINode) \ 1.740 + declare_c2_type(AndLNode, MulLNode) \ 1.741 + declare_c2_type(LShiftINode, Node) \ 1.742 + declare_c2_type(LShiftLNode, Node) \ 1.743 + declare_c2_type(RShiftINode, Node) \ 1.744 + declare_c2_type(RShiftLNode, Node) \ 1.745 + declare_c2_type(URShiftINode, Node) \ 1.746 + declare_c2_type(URShiftLNode, Node) \ 1.747 + declare_c2_type(MultiNode, Node) \ 1.748 + declare_c2_type(ProjNode, Node) \ 1.749 + declare_c2_type(TypeNode, Node) \ 1.750 + declare_c2_type(NodeHash, StackObj) \ 1.751 + declare_c2_type(RootNode, LoopNode) \ 1.752 + declare_c2_type(HaltNode, Node) \ 1.753 + declare_c2_type(SubNode, Node) \ 1.754 + declare_c2_type(SubINode, SubNode) \ 1.755 + declare_c2_type(SubLNode, SubNode) \ 1.756 + declare_c2_type(SubFPNode, SubNode) \ 1.757 + declare_c2_type(SubFNode, SubFPNode) \ 1.758 + declare_c2_type(SubDNode, SubFPNode) \ 1.759 + declare_c2_type(CmpNode, SubNode) \ 1.760 + declare_c2_type(CmpINode, CmpNode) \ 1.761 + declare_c2_type(CmpUNode, CmpNode) \ 1.762 + declare_c2_type(CmpPNode, CmpNode) \ 1.763 + declare_c2_type(CmpNNode, CmpNode) \ 1.764 + declare_c2_type(CmpLNode, CmpNode) \ 1.765 + declare_c2_type(CmpL3Node, CmpLNode) \ 1.766 + declare_c2_type(CmpFNode, CmpNode) \ 1.767 + declare_c2_type(CmpF3Node, CmpFNode) \ 1.768 + declare_c2_type(CmpDNode, CmpNode) \ 1.769 + declare_c2_type(CmpD3Node, CmpDNode) \ 1.770 + declare_c2_type(BoolNode, Node) \ 1.771 + declare_c2_type(AbsNode, Node) \ 1.772 + declare_c2_type(AbsINode, AbsNode) \ 1.773 + declare_c2_type(AbsFNode, AbsNode) \ 1.774 + declare_c2_type(AbsDNode, AbsNode) \ 1.775 + declare_c2_type(CmpLTMaskNode, Node) \ 1.776 + declare_c2_type(NegNode, Node) \ 1.777 + declare_c2_type(NegFNode, NegNode) \ 1.778 + declare_c2_type(NegDNode, NegNode) \ 1.779 + declare_c2_type(CosDNode, Node) \ 1.780 + declare_c2_type(SinDNode, Node) \ 1.781 + declare_c2_type(TanDNode, Node) \ 1.782 + declare_c2_type(AtanDNode, Node) \ 1.783 + declare_c2_type(SqrtDNode, Node) \ 1.784 + declare_c2_type(ExpDNode, Node) \ 1.785 + declare_c2_type(LogDNode, Node) \ 1.786 + declare_c2_type(Log10DNode, Node) \ 1.787 + declare_c2_type(PowDNode, Node) \ 1.788 + declare_c2_type(ReverseBytesINode, Node) \ 1.789 + declare_c2_type(ReverseBytesLNode, Node) \ 1.790 + declare_c2_type(VectorNode, Node) \ 1.791 + declare_c2_type(AddVBNode, VectorNode) \ 1.792 + declare_c2_type(AddVCNode, VectorNode) \ 1.793 + declare_c2_type(AddVSNode, VectorNode) \ 1.794 + declare_c2_type(AddVINode, VectorNode) \ 1.795 + declare_c2_type(AddVLNode, VectorNode) \ 1.796 + declare_c2_type(AddVFNode, VectorNode) \ 1.797 + declare_c2_type(AddVDNode, VectorNode) \ 1.798 + declare_c2_type(SubVBNode, VectorNode) \ 1.799 + declare_c2_type(SubVCNode, VectorNode) \ 1.800 + declare_c2_type(SubVSNode, VectorNode) \ 1.801 + declare_c2_type(SubVINode, VectorNode) \ 1.802 + declare_c2_type(SubVLNode, VectorNode) \ 1.803 + declare_c2_type(SubVFNode, VectorNode) \ 1.804 + declare_c2_type(SubVDNode, VectorNode) \ 1.805 + declare_c2_type(MulVFNode, VectorNode) \ 1.806 + declare_c2_type(MulVDNode, VectorNode) \ 1.807 + declare_c2_type(DivVFNode, VectorNode) \ 1.808 + declare_c2_type(DivVDNode, VectorNode) \ 1.809 + declare_c2_type(LShiftVBNode, VectorNode) \ 1.810 + declare_c2_type(LShiftVCNode, VectorNode) \ 1.811 + declare_c2_type(LShiftVSNode, VectorNode) \ 1.812 + declare_c2_type(LShiftVINode, VectorNode) \ 1.813 + declare_c2_type(URShiftVBNode, VectorNode) \ 1.814 + declare_c2_type(URShiftVCNode, VectorNode) \ 1.815 + declare_c2_type(URShiftVSNode, VectorNode) \ 1.816 + declare_c2_type(URShiftVINode, VectorNode) \ 1.817 + declare_c2_type(AndVNode, VectorNode) \ 1.818 + declare_c2_type(OrVNode, VectorNode) \ 1.819 + declare_c2_type(XorVNode, VectorNode) \ 1.820 + declare_c2_type(VectorLoadNode, LoadNode) \ 1.821 + declare_c2_type(Load16BNode, VectorLoadNode) \ 1.822 + declare_c2_type(Load8BNode, VectorLoadNode) \ 1.823 + declare_c2_type(Load4BNode, VectorLoadNode) \ 1.824 + declare_c2_type(Load8CNode, VectorLoadNode) \ 1.825 + declare_c2_type(Load4CNode, VectorLoadNode) \ 1.826 + declare_c2_type(Load2CNode, VectorLoadNode) \ 1.827 + declare_c2_type(Load8SNode, VectorLoadNode) \ 1.828 + declare_c2_type(Load4SNode, VectorLoadNode) \ 1.829 + declare_c2_type(Load2SNode, VectorLoadNode) \ 1.830 + declare_c2_type(Load4INode, VectorLoadNode) \ 1.831 + declare_c2_type(Load2INode, VectorLoadNode) \ 1.832 + declare_c2_type(Load2LNode, VectorLoadNode) \ 1.833 + declare_c2_type(Load4FNode, VectorLoadNode) \ 1.834 + declare_c2_type(Load2FNode, VectorLoadNode) \ 1.835 + declare_c2_type(Load2DNode, VectorLoadNode) \ 1.836 + declare_c2_type(VectorStoreNode, StoreNode) \ 1.837 + declare_c2_type(Store16BNode, VectorStoreNode) \ 1.838 + declare_c2_type(Store8BNode, VectorStoreNode) \ 1.839 + declare_c2_type(Store4BNode, VectorStoreNode) \ 1.840 + declare_c2_type(Store8CNode, VectorStoreNode) \ 1.841 + declare_c2_type(Store4CNode, VectorStoreNode) \ 1.842 + declare_c2_type(Store2CNode, VectorStoreNode) \ 1.843 + declare_c2_type(Store4INode, VectorStoreNode) \ 1.844 + declare_c2_type(Store2INode, VectorStoreNode) \ 1.845 + declare_c2_type(Store2LNode, VectorStoreNode) \ 1.846 + declare_c2_type(Store4FNode, VectorStoreNode) \ 1.847 + declare_c2_type(Store2FNode, VectorStoreNode) \ 1.848 + declare_c2_type(Store2DNode, VectorStoreNode) \ 1.849 + declare_c2_type(Replicate16BNode, VectorNode) \ 1.850 + declare_c2_type(Replicate8BNode, VectorNode) \ 1.851 + declare_c2_type(Replicate4BNode, VectorNode) \ 1.852 + declare_c2_type(Replicate8CNode, VectorNode) \ 1.853 + declare_c2_type(Replicate4CNode, VectorNode) \ 1.854 + declare_c2_type(Replicate2CNode, VectorNode) \ 1.855 + declare_c2_type(Replicate8SNode, VectorNode) \ 1.856 + declare_c2_type(Replicate4SNode, VectorNode) \ 1.857 + declare_c2_type(Replicate2SNode, VectorNode) \ 1.858 + declare_c2_type(Replicate4INode, VectorNode) \ 1.859 + declare_c2_type(Replicate2INode, VectorNode) \ 1.860 + declare_c2_type(Replicate2LNode, VectorNode) \ 1.861 + declare_c2_type(Replicate4FNode, VectorNode) \ 1.862 + declare_c2_type(Replicate2FNode, VectorNode) \ 1.863 + declare_c2_type(Replicate2DNode, VectorNode) \ 1.864 + declare_c2_type(PackNode, VectorNode) \ 1.865 + declare_c2_type(PackBNode, PackNode) \ 1.866 + declare_c2_type(PackCNode, PackNode) \ 1.867 + declare_c2_type(PackSNode, PackNode) \ 1.868 + declare_c2_type(PackINode, PackNode) \ 1.869 + declare_c2_type(PackLNode, PackNode) \ 1.870 + declare_c2_type(PackFNode, PackNode) \ 1.871 + declare_c2_type(PackDNode, PackNode) \ 1.872 + declare_c2_type(Pack2x1BNode, PackNode) \ 1.873 + declare_c2_type(Pack2x2BNode, PackNode) \ 1.874 + declare_c2_type(ExtractNode, Node) \ 1.875 + declare_c2_type(ExtractBNode, ExtractNode) \ 1.876 + declare_c2_type(ExtractCNode, ExtractNode) \ 1.877 + declare_c2_type(ExtractSNode, ExtractNode) \ 1.878 + declare_c2_type(ExtractINode, ExtractNode) \ 1.879 + declare_c2_type(ExtractLNode, ExtractNode) \ 1.880 + declare_c2_type(ExtractFNode, ExtractNode) \ 1.881 + declare_c2_type(ExtractDNode, ExtractNode) \ 1.882 \ 1.883 /*********************/ \ 1.884 /* Adapter Blob Entries */ \ 1.885 @@ -1402,6 +2026,32 @@ 1.886 declare_toplevel_type(AdapterHandlerEntry) \ 1.887 declare_toplevel_type(AdapterHandlerEntry*) \ 1.888 \ 1.889 + /*********************/ \ 1.890 + /* CI */ \ 1.891 + /*********************/ \ 1.892 + declare_toplevel_type(ciEnv) \ 1.893 + declare_toplevel_type(ciObjectFactory) \ 1.894 + declare_toplevel_type(ciConstant) \ 1.895 + declare_toplevel_type(ciField) \ 1.896 + declare_toplevel_type(void*) \ 1.897 + declare_toplevel_type(ciObject) \ 1.898 + declare_type(ciMethod, ciObject) \ 1.899 + declare_type(ciMethodData, ciObject) \ 1.900 + declare_type(ciType, ciObject) \ 1.901 + declare_type(ciInstance, ciObject) \ 1.902 + declare_toplevel_type(ciSymbol) \ 1.903 + declare_type(ciKlass, ciType) \ 1.904 + declare_type(ciInstanceKlass, ciKlass) \ 1.905 + declare_type(ciArrayKlass, ciKlass) \ 1.906 + declare_type(ciTypeArrayKlass, ciArrayKlass) \ 1.907 + declare_type(ciObjArrayKlass, ciArrayKlass) \ 1.908 + declare_type(ciMethodKlass, ciKlass) \ 1.909 + declare_type(ciKlassKlass, ciKlass) \ 1.910 + declare_type(ciInstanceKlassKlass, ciKlassKlass) \ 1.911 + declare_type(ciArrayKlassKlass, ciKlassKlass) \ 1.912 + declare_type(ciTypeArrayKlassKlass, ciArrayKlassKlass) \ 1.913 + declare_type(ciObjArrayKlassKlass, ciArrayKlassKlass) \ 1.914 + \ 1.915 /********************/ \ 1.916 /* -XX flags */ \ 1.917 /********************/ \ 1.918 @@ -1410,6 +2060,12 @@ 1.919 declare_toplevel_type(Flag*) \ 1.920 \ 1.921 /********************/ \ 1.922 + /* JVMTI */ \ 1.923 + /********************/ \ 1.924 + \ 1.925 + declare_toplevel_type(JvmtiExport) \ 1.926 + \ 1.927 + /********************/ \ 1.928 /* JDK/VM version */ \ 1.929 /********************/ \ 1.930 \ 1.931 @@ -1435,19 +2091,24 @@ 1.932 declare_integer_type(Location::Type) \ 1.933 declare_integer_type(Location::Where) \ 1.934 declare_integer_type(PermGen::Name) \ 1.935 + declare_integer_type(FlagValueOrigin) \ 1.936 + COMPILER2_PRESENT(declare_integer_type(OptoReg::Name)) \ 1.937 \ 1.938 declare_integer_type(AccessFlags) /* FIXME: wrong type (not integer) */\ 1.939 declare_toplevel_type(address) /* FIXME: should this be an integer type? */\ 1.940 + declare_integer_type(BasicType) /* FIXME: wrong type (not integer) */\ 1.941 declare_toplevel_type(BreakpointInfo) \ 1.942 declare_toplevel_type(BreakpointInfo*) \ 1.943 declare_toplevel_type(CodeBlob*) \ 1.944 declare_toplevel_type(CompressedWriteStream*) \ 1.945 declare_toplevel_type(ConstantPoolCacheEntry) \ 1.946 declare_toplevel_type(elapsedTimer) \ 1.947 + declare_toplevel_type(frame) \ 1.948 declare_toplevel_type(intptr_t*) \ 1.949 declare_unsigned_integer_type(InvocationCounter) /* FIXME: wrong type (not integer) */ \ 1.950 declare_toplevel_type(JavaThread*) \ 1.951 declare_toplevel_type(java_lang_Class) \ 1.952 + declare_integer_type(JavaThread::AsyncRequests) \ 1.953 declare_toplevel_type(jbyte*) \ 1.954 declare_toplevel_type(jbyte**) \ 1.955 declare_toplevel_type(jint*) \ 1.956 @@ -1460,6 +2121,7 @@ 1.957 declare_toplevel_type(jmethodID*) \ 1.958 declare_toplevel_type(Mutex*) \ 1.959 declare_toplevel_type(nmethod*) \ 1.960 + COMPILER2_PRESENT(declare_unsigned_integer_type(node_idx_t)) \ 1.961 declare_toplevel_type(ObjectMonitor*) \ 1.962 declare_toplevel_type(oop*) \ 1.963 declare_toplevel_type(OopMap**) \ 1.964 @@ -1470,7 +2132,10 @@ 1.965 declare_integer_type(ReferenceType) \ 1.966 declare_toplevel_type(StubQueue*) \ 1.967 declare_toplevel_type(Thread*) \ 1.968 - declare_toplevel_type(Universe) 1.969 + declare_toplevel_type(Universe) \ 1.970 + declare_toplevel_type(vframeArray) \ 1.971 + declare_toplevel_type(vframeArrayElement) 1.972 + 1.973 1.974 /* NOTE that we do not use the last_entry() macro here; it is used */ 1.975 /* in vmStructs_<os>_<cpu>.hpp's VM_TYPES_OS_CPU macro (and must be */ 1.976 @@ -1775,6 +2440,27 @@ 1.977 declare_constant(Location::on_stack) \ 1.978 declare_constant(Location::in_register) \ 1.979 \ 1.980 + declare_constant(Deoptimization::Reason_many) \ 1.981 + declare_constant(Deoptimization::Reason_none) \ 1.982 + declare_constant(Deoptimization::Reason_null_check) \ 1.983 + declare_constant(Deoptimization::Reason_null_assert) \ 1.984 + declare_constant(Deoptimization::Reason_range_check) \ 1.985 + declare_constant(Deoptimization::Reason_class_check) \ 1.986 + declare_constant(Deoptimization::Reason_array_check) \ 1.987 + declare_constant(Deoptimization::Reason_intrinsic) \ 1.988 + declare_constant(Deoptimization::Reason_bimorphic) \ 1.989 + declare_constant(Deoptimization::Reason_unloaded) \ 1.990 + declare_constant(Deoptimization::Reason_uninitialized) \ 1.991 + declare_constant(Deoptimization::Reason_unreached) \ 1.992 + declare_constant(Deoptimization::Reason_unhandled) \ 1.993 + declare_constant(Deoptimization::Reason_constraint) \ 1.994 + declare_constant(Deoptimization::Reason_div0_check) \ 1.995 + declare_constant(Deoptimization::Reason_age) \ 1.996 + declare_constant(Deoptimization::Reason_predicate) \ 1.997 + declare_constant(Deoptimization::Reason_loop_limit_check) \ 1.998 + declare_constant(Deoptimization::Reason_LIMIT) \ 1.999 + declare_constant(Deoptimization::Reason_RECORDED_LIMIT) \ 1.1000 + \ 1.1001 /*********************/ \ 1.1002 /* Matcher (C2 only) */ \ 1.1003 /*********************/ \ 1.1004 @@ -2478,12 +3164,14 @@ 1.1005 { 1.1006 VMTypeEntry* types = origtypes; 1.1007 while (types->typeName != NULL) { 1.1008 - if (!strcmp(typeName, types->typeName)) { 1.1009 + if (strcmp(typeName, types->typeName) == 0) { 1.1010 + // Found it 1.1011 return 1; 1.1012 } 1.1013 ++types; 1.1014 } 1.1015 } 1.1016 + // Search for the base type by peeling off const and * 1.1017 size_t len = strlen(typeName); 1.1018 if (typeName[len-1] == '*') { 1.1019 char * s = new char[len];