src/share/vm/runtime/vmStructs.cpp

changeset 3108
7588156f5cf9
parent 3041
d17bd0b18663
child 3137
e6b1331a51d2
     1.1 --- a/src/share/vm/runtime/vmStructs.cpp	Sat Sep 03 14:03:54 2011 -0700
     1.2 +++ b/src/share/vm/runtime/vmStructs.cpp	Mon Sep 05 17:09:05 2011 -0700
     1.3 @@ -652,6 +652,7 @@
     1.4        static_field(SystemDictionary,            WK_KLASS(ThreadGroup_klass),                   klassOop)                             \
     1.5        static_field(SystemDictionary,            WK_KLASS(Properties_klass),                    klassOop)                             \
     1.6        static_field(SystemDictionary,            WK_KLASS(StringBuffer_klass),                  klassOop)                             \
     1.7 +      static_field(SystemDictionary,            WK_KLASS(MethodHandle_klass),                  klassOop)                             \
     1.8        static_field(SystemDictionary,            _box_klasses[0],                               klassOop)                             \
     1.9        static_field(SystemDictionary,            _java_system_loader,                           oop)                                  \
    1.10                                                                                                                                       \
    1.11 @@ -757,12 +758,19 @@
    1.12    nonstatic_field(PcDesc,                      _pc_offset,                                    int)                                   \
    1.13    nonstatic_field(PcDesc,                      _scope_decode_offset,                          int)                                   \
    1.14    nonstatic_field(PcDesc,                      _obj_decode_offset,                            int)                                   \
    1.15 -  nonstatic_field(PcDesc,                      _flags,                        PcDesc::PcDescFlags)                                   \
    1.16 +  nonstatic_field(PcDesc,                      _flags,                                        int)                                   \
    1.17                                                                                                                                       \
    1.18    /***************************************************/                                                                              \
    1.19    /* CodeBlobs (NOTE: incomplete, but only a little) */                                                                              \
    1.20    /***************************************************/                                                                              \
    1.21                                                                                                                                       \
    1.22 +  X86_ONLY(nonstatic_field(MethodHandles::RicochetFrame, _sender_pc,                                     address))                   \
    1.23 +  X86_ONLY(nonstatic_field(MethodHandles::RicochetFrame, _exact_sender_sp,                              intptr_t*))                  \
    1.24 +  X86_ONLY(nonstatic_field(MethodHandles::RicochetFrame, _sender_link,                                  intptr_t*))                  \
    1.25 +  X86_ONLY(nonstatic_field(MethodHandles::RicochetFrame, _saved_args_base,                              intptr_t*))                  \
    1.26 +                                                                                                                                     \
    1.27 +     static_field(SharedRuntime,               _ricochet_blob,                                RicochetBlob*)                         \
    1.28 +                                                                                                                                     \
    1.29    nonstatic_field(CodeBlob,                    _name,                                         const char*)                           \
    1.30    nonstatic_field(CodeBlob,                    _size,                                         int)                                   \
    1.31    nonstatic_field(CodeBlob,                    _header_size,                                  int)                                   \
    1.32 @@ -774,6 +782,8 @@
    1.33    nonstatic_field(CodeBlob,                    _frame_size,                                   int)                                   \
    1.34    nonstatic_field(CodeBlob,                    _oop_maps,                                     OopMapSet*)                            \
    1.35                                                                                                                                       \
    1.36 +  nonstatic_field(RuntimeStub,                 _caller_must_gc_arguments,                     bool)                                  \
    1.37 +                                                                                                                                     \
    1.38    /**************************************************/                                                                               \
    1.39    /* NMethods (NOTE: incomplete, but only a little) */                                                                               \
    1.40    /**************************************************/                                                                               \
    1.41 @@ -786,6 +796,7 @@
    1.42    nonstatic_field(nmethod,             _state,                                        unsigned char)                         \
    1.43    nonstatic_field(nmethod,             _exception_offset,                             int)                                   \
    1.44    nonstatic_field(nmethod,             _deoptimize_offset,                            int)                                   \
    1.45 +  nonstatic_field(nmethod,             _deoptimize_mh_offset,                         int)                                   \
    1.46    nonstatic_field(nmethod,             _orig_pc_offset,                               int)                                   \
    1.47    nonstatic_field(nmethod,             _stub_offset,                                  int)                                   \
    1.48    nonstatic_field(nmethod,             _consts_offset,                                int)                                   \
    1.49 @@ -804,6 +815,9 @@
    1.50    nonstatic_field(nmethod,             _compile_id,                                   int)                                   \
    1.51    nonstatic_field(nmethod,             _marked_for_deoptimization,                    bool)                                  \
    1.52                                                                                                                                       \
    1.53 +  nonstatic_field(RicochetBlob,        _bounce_offset,                                int)                                           \
    1.54 +  nonstatic_field(RicochetBlob,        _exception_offset,                             int)                                           \
    1.55 +                                                                                                                                     \
    1.56    /********************************/                                                                                                 \
    1.57    /* JavaCalls (NOTE: incomplete) */                                                                                                 \
    1.58    /********************************/                                                                                                 \
    1.59 @@ -1310,24 +1324,27 @@
    1.60    /* CodeBlob hierarchy (needed for run-time type information) */         \
    1.61    /*************************************************************/         \
    1.62                                                                            \
    1.63 +  declare_toplevel_type(SharedRuntime)                                    \
    1.64 +  X86_ONLY(declare_toplevel_type(MethodHandles::RicochetFrame))           \
    1.65 +                                                                          \
    1.66    declare_toplevel_type(CodeBlob)                                         \
    1.67 -  declare_type(BufferBlob,            CodeBlob)                           \
    1.68 -  declare_type(AdapterBlob,           BufferBlob)                         \
    1.69 -  declare_type(nmethod,               CodeBlob)                           \
    1.70 -  declare_type(RuntimeStub,           CodeBlob)                           \
    1.71 -  declare_type(SingletonBlob,         CodeBlob)                           \
    1.72 -  declare_type(SafepointBlob,         SingletonBlob)                      \
    1.73 -  declare_type(DeoptimizationBlob,    SingletonBlob)                      \
    1.74 -  declare_type(RicochetBlob,          SingletonBlob)                      \
    1.75 -  declare_c2_type(ExceptionBlob,      SingletonBlob)                      \
    1.76 -  declare_c2_type(UncommonTrapBlob,   CodeBlob)                           \
    1.77 +  declare_type(BufferBlob,               CodeBlob)                        \
    1.78 +  declare_type(AdapterBlob,              BufferBlob)                      \
    1.79 +  declare_type(MethodHandlesAdapterBlob, BufferBlob)                      \
    1.80 +  declare_type(nmethod,                  CodeBlob)                        \
    1.81 +  declare_type(RuntimeStub,              CodeBlob)                        \
    1.82 +  declare_type(SingletonBlob,            CodeBlob)                        \
    1.83 +  declare_type(SafepointBlob,            SingletonBlob)                   \
    1.84 +  declare_type(DeoptimizationBlob,       SingletonBlob)                   \
    1.85 +  declare_type(RicochetBlob,             SingletonBlob)                   \
    1.86 +  declare_c2_type(ExceptionBlob,         SingletonBlob)                   \
    1.87 +  declare_c2_type(UncommonTrapBlob,      CodeBlob)                        \
    1.88                                                                            \
    1.89    /***************************************/                               \
    1.90    /* PcDesc and other compiled code info */                               \
    1.91    /***************************************/                               \
    1.92                                                                            \
    1.93    declare_toplevel_type(PcDesc)                                           \
    1.94 -  declare_integer_type(PcDesc::PcDescFlags)                               \
    1.95                                                                            \
    1.96    /************************/                                              \
    1.97    /* OopMap and OopMapSet */                                              \
    1.98 @@ -1796,6 +1813,21 @@
    1.99                                                                            \
   1.100    declare_constant(ObjectSynchronizer::_BLOCKSIZE)                        \
   1.101                                                                            \
   1.102 +  /**********************/                                                \
   1.103 +  /* PcDesc             */                                                \
   1.104 +  /**********************/                                                \
   1.105 +                                                                          \
   1.106 +  declare_constant(PcDesc::PCDESC_reexecute)                              \
   1.107 +  declare_constant(PcDesc::PCDESC_is_method_handle_invoke)                \
   1.108 +  declare_constant(PcDesc::PCDESC_return_oop)                             \
   1.109 +                                                                          \
   1.110 +  /**********************/                                                \
   1.111 +  /* frame              */                                                \
   1.112 +  /**********************/                                                \
   1.113 +                                                                          \
   1.114 +  X86_ONLY(declare_constant(frame::entry_frame_call_wrapper_offset))      \
   1.115 +  declare_constant(frame::pc_return_offset)                               \
   1.116 +                                                                          \
   1.117    /********************************/                                      \
   1.118    /* Calling convention constants */                                      \
   1.119    /********************************/                                      \

mercurial