< prev index next >

src/share/vm/runtime/sharedRuntime.hpp

Print this page




 163   static int unordered_dcmplt(double x, double y);
 164   static int unordered_fcmple(float x, float y);
 165   static int unordered_dcmple(double x, double y);
 166   static int unordered_fcmpge(float x, float y);
 167   static int unordered_dcmpge(double x, double y);
 168   static int unordered_fcmpgt(float x, float y);
 169   static int unordered_dcmpgt(double x, double y);
 170 
 171   static float  fneg(float f);
 172   static double dneg(double f);
 173 #endif
 174 
 175   // exception handling across interpreter/compiler boundaries
 176   static address raw_exception_handler_for_return_address(JavaThread* thread, address return_address);
 177   static address exception_handler_for_return_address(JavaThread* thread, address return_address);
 178 
 179 #if INCLUDE_ALL_GCS
 180   // G1 write barriers
 181   static void g1_wb_pre(oopDesc* orig, JavaThread *thread);
 182   static void g1_wb_post(void* card_addr, JavaThread* thread);

 183 #endif // INCLUDE_ALL_GCS
 184 
 185   // exception handling and implicit exceptions
 186   static address compute_compiled_exc_handler(nmethod* nm, address ret_pc, Handle& exception,
 187                                               bool force_unwind, bool top_frame_only, bool& recursive_exception_occurred);
 188   enum ImplicitExceptionKind {
 189     IMPLICIT_NULL,
 190     IMPLICIT_DIVIDE_BY_ZERO,
 191     STACK_OVERFLOW
 192   };
 193   static void    throw_AbstractMethodError(JavaThread* thread);
 194   static void    throw_IncompatibleClassChangeError(JavaThread* thread);
 195   static void    throw_ArithmeticException(JavaThread* thread);
 196   static void    throw_NullPointerException(JavaThread* thread);
 197   static void    throw_NullPointerException_at_call(JavaThread* thread);
 198   static void    throw_StackOverflowError(JavaThread* thread);
 199   static address continuation_for_implicit_exception(JavaThread* thread,
 200                                                      address faulting_pc,
 201                                                      ImplicitExceptionKind exception_kind);
 202 


 472                                           int compile_id,
 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




 163   static int unordered_dcmplt(double x, double y);
 164   static int unordered_fcmple(float x, float y);
 165   static int unordered_dcmple(double x, double y);
 166   static int unordered_fcmpge(float x, float y);
 167   static int unordered_dcmpge(double x, double y);
 168   static int unordered_fcmpgt(float x, float y);
 169   static int unordered_dcmpgt(double x, double y);
 170 
 171   static float  fneg(float f);
 172   static double dneg(double f);
 173 #endif
 174 
 175   // exception handling across interpreter/compiler boundaries
 176   static address raw_exception_handler_for_return_address(JavaThread* thread, address return_address);
 177   static address exception_handler_for_return_address(JavaThread* thread, address return_address);
 178 
 179 #if INCLUDE_ALL_GCS
 180   // G1 write barriers
 181   static void g1_wb_pre(oopDesc* orig, JavaThread *thread);
 182   static void g1_wb_post(void* card_addr, JavaThread* thread);
 183   static void shenandoah_clone_barrier(oopDesc* obj);
 184 #endif // INCLUDE_ALL_GCS
 185 
 186   // exception handling and implicit exceptions
 187   static address compute_compiled_exc_handler(nmethod* nm, address ret_pc, Handle& exception,
 188                                               bool force_unwind, bool top_frame_only, bool& recursive_exception_occurred);
 189   enum ImplicitExceptionKind {
 190     IMPLICIT_NULL,
 191     IMPLICIT_DIVIDE_BY_ZERO,
 192     STACK_OVERFLOW
 193   };
 194   static void    throw_AbstractMethodError(JavaThread* thread);
 195   static void    throw_IncompatibleClassChangeError(JavaThread* thread);
 196   static void    throw_ArithmeticException(JavaThread* thread);
 197   static void    throw_NullPointerException(JavaThread* thread);
 198   static void    throw_NullPointerException_at_call(JavaThread* thread);
 199   static void    throw_StackOverflowError(JavaThread* thread);
 200   static address continuation_for_implicit_exception(JavaThread* thread,
 201                                                      address faulting_pc,
 202                                                      ImplicitExceptionKind exception_kind);
 203 


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


< prev index next >