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 /********************************/ \