< prev index next >

src/hotspot/share/runtime/sharedRuntime.hpp

Print this page




 469 
 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 
 486   // Block before entering a JNI critical method
 487   static void block_for_jni_critical(JavaThread* thread);
 488 




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




 469 
 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 
 486   // Block before entering a JNI critical method
 487   static void block_for_jni_critical(JavaThread* thread);
 488 
 489   // Pin/Unpin object
 490   static oopDesc* pin_object(JavaThread* thread, oopDesc* obj);
 491   static void unpin_object(JavaThread* thread, oopDesc* obj);
 492 
 493   // A compiled caller has just called the interpreter, but compiled code
 494   // exists.  Patch the caller so he no longer calls into the interpreter.
 495   static void fixup_callers_callsite(Method* moop, address ret_pc);
 496   static bool should_fixup_call_destination(address destination, address entry_point, address caller_pc, Method* moop, CodeBlob* cb);
 497 
 498   // Slow-path Locking and Unlocking
 499   static void complete_monitor_locking_C(oopDesc* obj, BasicLock* lock, JavaThread* thread);
 500   static void complete_monitor_unlocking_C(oopDesc* obj, BasicLock* lock, JavaThread* thread);
 501 
 502   // Resolving of calls
 503   static address resolve_static_call_C     (JavaThread *thread);
 504   static address resolve_virtual_call_C    (JavaThread *thread);
 505   static address resolve_opt_virtual_call_C(JavaThread *thread);
 506 
 507   // arraycopy, the non-leaf version.  (See StubRoutines for all the leaf calls.)
 508   static void slow_arraycopy_C(oopDesc* src,  jint src_pos,
 509                                oopDesc* dest, jint dest_pos,
 510                                jint length, JavaThread* thread);
 511 
 512   // handle ic miss with caller being compiled code


< prev index next >