< prev index next >

src/hotspot/share/runtime/sharedRuntime.hpp

Print this page
*** 33,10 ***
--- 33,11 ---
  #include "utilities/macros.hpp"
  
  class AdapterHandlerEntry;
  class AdapterFingerPrint;
  class vframeStream;
+ class ObjectWaiter;
  
  // Runtime is the base class for various runtime interfaces
  // (InterpreterRuntime, CompilerRuntime, etc.). It provides
  // shared functionality such as exception forwarding (C++ to
  // Java exceptions), locking/unlocking mechanisms, statistical

*** 53,10 ***
--- 54,11 ---
    static RuntimeStub*        _ic_miss_blob;
    static RuntimeStub*        _resolve_opt_virtual_call_blob;
    static RuntimeStub*        _resolve_virtual_call_blob;
    static RuntimeStub*        _resolve_static_call_blob;
    static address             _resolve_static_call_entry;
+   static address             _native_frame_resume_entry;
  
    static DeoptimizationBlob* _deopt_blob;
  
    static SafepointBlob*      _polling_page_vectors_safepoint_handler_blob;
    static SafepointBlob*      _polling_page_safepoint_handler_blob;

*** 196,10 ***
--- 198,16 ---
    static void    throw_StackOverflowError_common(JavaThread* current, bool delayed);
    static address continuation_for_implicit_exception(JavaThread* current,
                                                       address faulting_pc,
                                                       ImplicitExceptionKind exception_kind);
  
+   static address native_frame_resume_entry() { return _native_frame_resume_entry; }
+   static void set_native_frame_resume_entry(address val) {
+     assert(_native_frame_resume_entry == nullptr, "");
+     _native_frame_resume_entry = val;
+   }
+ 
    // Post-slow-path-allocation, pre-initializing-stores step for
    // implementing e.g. ReduceInitialCardMarks
    static void on_slowpath_allocation_exit(JavaThread* current);
  
    static void enable_stack_reserved_zone(JavaThread* current);

*** 462,10 ***
--- 470,14 ---
    // Stack slots that may be unused by the calling convention but must
    // otherwise be preserved.  On Intel this includes the return address.
    // On PowerPC it includes the 4 words holding the old TOC & LR glue.
    static uint in_preserve_stack_slots();
  
+   static VMReg thread_register();
+ 
+   static void continuation_enter_cleanup(MacroAssembler* masm);
+ 
    // Is vector's size (in bytes) bigger than a size saved by default?
    // For example, on x86 16 bytes XMM registers are saved by default.
    static bool is_wide_vector(int size);
  
    // Save and restore a native result

*** 493,10 ***
--- 505,11 ---
    static bool should_fixup_call_destination(address destination, address entry_point, address caller_pc, Method* moop, CodeBlob* cb);
  
    // Slow-path Locking and Unlocking
    static void complete_monitor_locking_C(oopDesc* obj, BasicLock* lock, JavaThread* current);
    static void complete_monitor_unlocking_C(oopDesc* obj, BasicLock* lock, JavaThread* current);
+   static void resume_monitor_operation(JavaThread* current, ObjectWaiter* node);
  
    // Resolving of calls
    static address get_resolved_entry        (JavaThread* current, methodHandle callee_method);
    static address resolve_static_call_C     (JavaThread* current);
    static address resolve_virtual_call_C    (JavaThread* current);
< prev index next >