473 BasicType* sig_bt, 474 VMRegPair* regs, 475 BasicType ret_type ); 476 477 // Block before entering a JNI critical method 478 static void block_for_jni_critical(JavaThread* thread); 479 480 #ifdef HAVE_DTRACE_H 481 // Generate a dtrace wrapper for a given method. The method takes arguments 482 // in the Java compiled code convention, marshals them to the native 483 // convention (handlizes oops, etc), transitions to native, makes the call, 484 // returns to java state (possibly blocking), unhandlizes any result and 485 // returns. 486 static nmethod *generate_dtrace_nmethod(MacroAssembler* masm, 487 methodHandle method); 488 489 // dtrace support to convert a Java string to utf8 490 static void get_utf(oopDesc* src, address dst); 491 #endif // def HAVE_DTRACE_H 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 497 // Slow-path Locking and Unlocking 498 static void complete_monitor_locking_C(oopDesc* obj, BasicLock* lock, JavaThread* thread); 499 static void complete_monitor_unlocking_C(oopDesc* obj, BasicLock* lock); 500 501 // Resolving of calls 502 static address resolve_static_call_C (JavaThread *thread); 503 static address resolve_virtual_call_C (JavaThread *thread); 504 static address resolve_opt_virtual_call_C(JavaThread *thread); 505 506 // arraycopy, the non-leaf version. (See StubRoutines for all the leaf calls.) 507 static void slow_arraycopy_C(oopDesc* src, jint src_pos, 508 oopDesc* dest, jint dest_pos, 509 jint length, JavaThread* thread); 510 511 // handle ic miss with caller being compiled code 512 // wrong method handling (inline cache misses, zombie methods) | 473 BasicType* sig_bt, 474 VMRegPair* regs, 475 BasicType ret_type ); 476 477 // Block before entering a JNI critical method 478 static void block_for_jni_critical(JavaThread* thread); 479 480 #ifdef HAVE_DTRACE_H 481 // Generate a dtrace wrapper for a given method. The method takes arguments 482 // in the Java compiled code convention, marshals them to the native 483 // convention (handlizes oops, etc), transitions to native, makes the call, 484 // returns to java state (possibly blocking), unhandlizes any result and 485 // returns. 486 static nmethod *generate_dtrace_nmethod(MacroAssembler* masm, 487 methodHandle method); 488 489 // dtrace support to convert a Java string to utf8 490 static void get_utf(oopDesc* src, address dst); 491 #endif // def HAVE_DTRACE_H 492 493 // Pin/Unpin object 494 static oopDesc* pin_object(JavaThread* thread, oopDesc* obj); 495 static void unpin_object(JavaThread* thread, oopDesc* obj); 496 497 // A compiled caller has just called the interpreter, but compiled code 498 // exists. Patch the caller so he no longer calls into the interpreter. 499 static void fixup_callers_callsite(Method* moop, address ret_pc); 500 501 // Slow-path Locking and Unlocking 502 static void complete_monitor_locking_C(oopDesc* obj, BasicLock* lock, JavaThread* thread); 503 static void complete_monitor_unlocking_C(oopDesc* obj, BasicLock* lock); 504 505 // Resolving of calls 506 static address resolve_static_call_C (JavaThread *thread); 507 static address resolve_virtual_call_C (JavaThread *thread); 508 static address resolve_opt_virtual_call_C(JavaThread *thread); 509 510 // arraycopy, the non-leaf version. (See StubRoutines for all the leaf calls.) 511 static void slow_arraycopy_C(oopDesc* src, jint src_pos, 512 oopDesc* dest, jint dest_pos, 513 jint length, JavaThread* thread); 514 515 // handle ic miss with caller being compiled code 516 // wrong method handling (inline cache misses, zombie methods) |