comparison src/share/vm/runtime/vmStructs.cpp @ 6266:1d7922586cf6

7023639: JSR 292 method handle invocation needs a fast path for compiled code 6984705: JSR 292 method handle creation should not go through JNI Summary: remove assembly code for JDK 7 chained method handles Reviewed-by: jrose, twisti, kvn, mhaupt Contributed-by: John Rose <john.r.rose@oracle.com>, Christian Thalinger <christian.thalinger@oracle.com>, Michael Haupt <michael.haupt@oracle.com>
author twisti
date Tue, 24 Jul 2012 10:51:00 -0700
parents e74da3c2b827
children 957c266d8bc5 a9fed06c01d2
comparison
equal deleted inserted replaced
6241:aba91a731143 6266:1d7922586cf6
834 \ 834 \
835 /***************************************************/ \ 835 /***************************************************/ \
836 /* CodeBlobs (NOTE: incomplete, but only a little) */ \ 836 /* CodeBlobs (NOTE: incomplete, but only a little) */ \
837 /***************************************************/ \ 837 /***************************************************/ \
838 \ 838 \
839 X86_ONLY(nonstatic_field(MethodHandles::RicochetFrame, _sender_pc, address)) \
840 X86_ONLY(nonstatic_field(MethodHandles::RicochetFrame, _exact_sender_sp, intptr_t*)) \
841 X86_ONLY(nonstatic_field(MethodHandles::RicochetFrame, _sender_link, intptr_t*)) \
842 X86_ONLY(nonstatic_field(MethodHandles::RicochetFrame, _saved_args_base, intptr_t*)) \
843 \
844 static_field(SharedRuntime, _ricochet_blob, RicochetBlob*) \
845 \
846 nonstatic_field(CodeBlob, _name, const char*) \ 839 nonstatic_field(CodeBlob, _name, const char*) \
847 nonstatic_field(CodeBlob, _size, int) \ 840 nonstatic_field(CodeBlob, _size, int) \
848 nonstatic_field(CodeBlob, _header_size, int) \ 841 nonstatic_field(CodeBlob, _header_size, int) \
849 nonstatic_field(CodeBlob, _relocation_size, int) \ 842 nonstatic_field(CodeBlob, _relocation_size, int) \
850 nonstatic_field(CodeBlob, _content_offset, int) \ 843 nonstatic_field(CodeBlob, _content_offset, int) \
885 nonstatic_field(nmethod, _lock_count, jint) \ 878 nonstatic_field(nmethod, _lock_count, jint) \
886 nonstatic_field(nmethod, _stack_traversal_mark, long) \ 879 nonstatic_field(nmethod, _stack_traversal_mark, long) \
887 nonstatic_field(nmethod, _compile_id, int) \ 880 nonstatic_field(nmethod, _compile_id, int) \
888 nonstatic_field(nmethod, _exception_cache, ExceptionCache*) \ 881 nonstatic_field(nmethod, _exception_cache, ExceptionCache*) \
889 nonstatic_field(nmethod, _marked_for_deoptimization, bool) \ 882 nonstatic_field(nmethod, _marked_for_deoptimization, bool) \
890 \ 883 \
891 nonstatic_field(RicochetBlob, _bounce_offset, int) \ 884 unchecked_c2_static_field(Deoptimization, _trap_reason_name, void*) \
892 nonstatic_field(RicochetBlob, _exception_offset, int) \
893 \
894 unchecked_c2_static_field(Deoptimization, _trap_reason_name, void*) \
895 \ 885 \
896 /********************************/ \ 886 /********************************/ \
897 /* JavaCalls (NOTE: incomplete) */ \ 887 /* JavaCalls (NOTE: incomplete) */ \
898 /********************************/ \ 888 /********************************/ \
899 \ 889 \
1631 /*************************************************************/ \ 1621 /*************************************************************/ \
1632 /* CodeBlob hierarchy (needed for run-time type information) */ \ 1622 /* CodeBlob hierarchy (needed for run-time type information) */ \
1633 /*************************************************************/ \ 1623 /*************************************************************/ \
1634 \ 1624 \
1635 declare_toplevel_type(SharedRuntime) \ 1625 declare_toplevel_type(SharedRuntime) \
1636 X86_ONLY(declare_toplevel_type(MethodHandles::RicochetFrame)) \
1637 \ 1626 \
1638 declare_toplevel_type(CodeBlob) \ 1627 declare_toplevel_type(CodeBlob) \
1639 declare_type(BufferBlob, CodeBlob) \ 1628 declare_type(BufferBlob, CodeBlob) \
1640 declare_type(AdapterBlob, BufferBlob) \ 1629 declare_type(AdapterBlob, BufferBlob) \
1641 declare_type(MethodHandlesAdapterBlob, BufferBlob) \ 1630 declare_type(MethodHandlesAdapterBlob, BufferBlob) \
1642 declare_type(nmethod, CodeBlob) \ 1631 declare_type(nmethod, CodeBlob) \
1643 declare_type(RuntimeStub, CodeBlob) \ 1632 declare_type(RuntimeStub, CodeBlob) \
1644 declare_type(SingletonBlob, CodeBlob) \ 1633 declare_type(SingletonBlob, CodeBlob) \
1645 declare_type(SafepointBlob, SingletonBlob) \ 1634 declare_type(SafepointBlob, SingletonBlob) \
1646 declare_type(DeoptimizationBlob, SingletonBlob) \ 1635 declare_type(DeoptimizationBlob, SingletonBlob) \
1647 declare_type(RicochetBlob, SingletonBlob) \
1648 declare_c2_type(ExceptionBlob, SingletonBlob) \ 1636 declare_c2_type(ExceptionBlob, SingletonBlob) \
1649 declare_c2_type(UncommonTrapBlob, CodeBlob) \ 1637 declare_c2_type(UncommonTrapBlob, CodeBlob) \
1650 \ 1638 \
1651 /***************************************/ \ 1639 /***************************************/ \
1652 /* PcDesc and other compiled code info */ \ 1640 /* PcDesc and other compiled code info */ \
2345 declare_constant(instanceKlass::being_initialized) \ 2333 declare_constant(instanceKlass::being_initialized) \
2346 declare_constant(instanceKlass::fully_initialized) \ 2334 declare_constant(instanceKlass::fully_initialized) \
2347 declare_constant(instanceKlass::initialization_error) \ 2335 declare_constant(instanceKlass::initialization_error) \
2348 \ 2336 \
2349 /*********************************/ \ 2337 /*********************************/ \
2350 /* Symbol* - symbol max length */ \ 2338 /* Symbol* - symbol max length */ \
2351 /*********************************/ \ 2339 /*********************************/ \
2352 \ 2340 \
2353 declare_constant(Symbol::max_symbol_length) \ 2341 declare_constant(Symbol::max_symbol_length) \
2354 \ 2342 \
2355 /*************************************************/ \ 2343 /*************************************************/ \
2358 \ 2346 \
2359 declare_constant(constantPoolOopDesc::_indy_bsm_offset) \ 2347 declare_constant(constantPoolOopDesc::_indy_bsm_offset) \
2360 declare_constant(constantPoolOopDesc::_indy_argc_offset) \ 2348 declare_constant(constantPoolOopDesc::_indy_argc_offset) \
2361 declare_constant(constantPoolOopDesc::_indy_argv_offset) \ 2349 declare_constant(constantPoolOopDesc::_indy_argv_offset) \
2362 \ 2350 \
2363 /*********************************************/ \ 2351 /********************************/ \
2364 /* ConstantPoolCacheEntry FlagBitValues enum */ \ 2352 /* ConstantPoolCacheEntry enums */ \
2365 /*********************************************/ \ 2353 /********************************/ \
2366 \ 2354 \
2367 declare_constant(ConstantPoolCacheEntry::hotSwapBit) \ 2355 declare_constant(ConstantPoolCacheEntry::is_volatile_shift) \
2368 declare_constant(ConstantPoolCacheEntry::methodInterface) \ 2356 declare_constant(ConstantPoolCacheEntry::is_final_shift) \
2369 declare_constant(ConstantPoolCacheEntry::volatileField) \ 2357 declare_constant(ConstantPoolCacheEntry::is_forced_virtual_shift) \
2370 declare_constant(ConstantPoolCacheEntry::vfinalMethod) \ 2358 declare_constant(ConstantPoolCacheEntry::is_vfinal_shift) \
2371 declare_constant(ConstantPoolCacheEntry::finalField) \ 2359 declare_constant(ConstantPoolCacheEntry::is_field_entry_shift) \
2372 \ 2360 declare_constant(ConstantPoolCacheEntry::tos_state_shift) \
2373 /******************************************/ \
2374 /* ConstantPoolCacheEntry FlagValues enum */ \
2375 /******************************************/ \
2376 \
2377 declare_constant(ConstantPoolCacheEntry::tosBits) \
2378 \ 2361 \
2379 /***************************************/ \ 2362 /***************************************/ \
2380 /* java_lang_Thread::ThreadStatus enum */ \ 2363 /* java_lang_Thread::ThreadStatus enum */ \
2381 /***************************************/ \ 2364 /***************************************/ \
2382 \ 2365 \