< prev index next >

src/hotspot/share/runtime/sharedRuntime.hpp

Print this page




 470   // Generate a native wrapper for a given method.  The method takes arguments
 471   // in the Java compiled code convention, marshals them to the native
 472   // convention (handlizes oops, etc), transitions to native, makes the call,
 473   // returns to java state (possibly blocking), unhandlizes any result and
 474   // returns.
 475   //
 476   // The wrapper may contain special-case code if the given method
 477   // is a JNI critical method, or a compiled method handle adapter,
 478   // such as _invokeBasic, _linkToVirtual, etc.
 479   static nmethod* generate_native_wrapper(MacroAssembler* masm,
 480                                           const methodHandle& method,
 481                                           int compile_id,
 482                                           BasicType* sig_bt,
 483                                           VMRegPair* regs,
 484                                           BasicType ret_type,
 485                                           address critical_entry);
 486 
 487   // Block before entering a JNI critical method
 488   static void block_for_jni_critical(JavaThread* thread);
 489 




 490   // A compiled caller has just called the interpreter, but compiled code
 491   // exists.  Patch the caller so he no longer calls into the interpreter.
 492   static void fixup_callers_callsite(Method* moop, address ret_pc);
 493   static bool should_fixup_call_destination(address destination, address entry_point, address caller_pc, Method* moop, CodeBlob* cb);
 494 
 495   // Slow-path Locking and Unlocking
 496   static void complete_monitor_locking_C(oopDesc* obj, BasicLock* lock, JavaThread* thread);
 497   static void complete_monitor_unlocking_C(oopDesc* obj, BasicLock* lock, JavaThread* thread);
 498 
 499   // Resolving of calls
 500   static address resolve_static_call_C     (JavaThread *thread);
 501   static address resolve_virtual_call_C    (JavaThread *thread);
 502   static address resolve_opt_virtual_call_C(JavaThread *thread);
 503 
 504   // arraycopy, the non-leaf version.  (See StubRoutines for all the leaf calls.)
 505   static void slow_arraycopy_C(oopDesc* src,  jint src_pos,
 506                                oopDesc* dest, jint dest_pos,
 507                                jint length, JavaThread* thread);
 508 
 509   // handle ic miss with caller being compiled code




 470   // Generate a native wrapper for a given method.  The method takes arguments
 471   // in the Java compiled code convention, marshals them to the native
 472   // convention (handlizes oops, etc), transitions to native, makes the call,
 473   // returns to java state (possibly blocking), unhandlizes any result and
 474   // returns.
 475   //
 476   // The wrapper may contain special-case code if the given method
 477   // is a JNI critical method, or a compiled method handle adapter,
 478   // such as _invokeBasic, _linkToVirtual, etc.
 479   static nmethod* generate_native_wrapper(MacroAssembler* masm,
 480                                           const methodHandle& method,
 481                                           int compile_id,
 482                                           BasicType* sig_bt,
 483                                           VMRegPair* regs,
 484                                           BasicType ret_type,
 485                                           address critical_entry);
 486 
 487   // Block before entering a JNI critical method
 488   static void block_for_jni_critical(JavaThread* thread);
 489 
 490   // Pin/Unpin object
 491   static oopDesc* pin_object(JavaThread* thread, oopDesc* obj);
 492   static void unpin_object(JavaThread* thread, oopDesc* obj);
 493 
 494   // A compiled caller has just called the interpreter, but compiled code
 495   // exists.  Patch the caller so he no longer calls into the interpreter.
 496   static void fixup_callers_callsite(Method* moop, address ret_pc);
 497   static bool should_fixup_call_destination(address destination, address entry_point, address caller_pc, Method* moop, CodeBlob* cb);
 498 
 499   // Slow-path Locking and Unlocking
 500   static void complete_monitor_locking_C(oopDesc* obj, BasicLock* lock, JavaThread* thread);
 501   static void complete_monitor_unlocking_C(oopDesc* obj, BasicLock* lock, JavaThread* thread);
 502 
 503   // Resolving of calls
 504   static address resolve_static_call_C     (JavaThread *thread);
 505   static address resolve_virtual_call_C    (JavaThread *thread);
 506   static address resolve_opt_virtual_call_C(JavaThread *thread);
 507 
 508   // arraycopy, the non-leaf version.  (See StubRoutines for all the leaf calls.)
 509   static void slow_arraycopy_C(oopDesc* src,  jint src_pos,
 510                                oopDesc* dest, jint dest_pos,
 511                                jint length, JavaThread* thread);
 512 
 513   // handle ic miss with caller being compiled code


< prev index next >