src/share/vm/runtime/vmStructs.cpp

changeset 3138
f6f3bb0ee072
parent 3137
e6b1331a51d2
child 3139
ab577c97a5f3
     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];

mercurial