< prev index next >


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 >