Mercurial > hg > truffle
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 \ |