< prev index next >

src/hotspot/share/interpreter/interpreterRuntime.hpp

Print this page

        

@@ -35,10 +35,16 @@
 #include "utilities/macros.hpp"
 
 // The InterpreterRuntime is called by the interpreter for everything
 // that cannot/should not be dealt with in assembly and needs C support.
 
+struct FrameInfo {
+  address pc;
+  address fp;
+  address sp;
+};
+
 class InterpreterRuntime: AllStatic {
   friend class BytecodeClosure; // for method and bcp
   friend class PrintingClosure; // for method and bcp
 
  private:

@@ -167,10 +173,16 @@
   static bool is_breakpoint(JavaThread *thread) { return Bytecodes::code_or_bp_at(LastFrameAccessor(thread).bcp()) == Bytecodes::_breakpoint; }
 
   // Safepoints
   static void    at_safepoint(JavaThread* thread);
 
+  // Continuation
+  static void freeze(JavaThread* thread, FrameInfo* fi, oop context);
+  static void pop_and_thaw0(JavaThread* thread, FrameInfo* fi, int num_frames, bool pop);
+  static void pop_and_thaw(JavaThread* thread, FrameInfo* fi, int num_frames);
+  static void thaw(JavaThread* thread, FrameInfo* fi, int num_frames);
+
   // Debugger support
   static void post_field_access(JavaThread *thread, oopDesc* obj,
     ConstantPoolCacheEntry *cp_entry);
   static void post_field_modification(JavaThread *thread, oopDesc* obj,
     ConstantPoolCacheEntry *cp_entry, jvalue *value);
< prev index next >