--- old/src/hotspot/share/interpreter/interpreterRuntime.hpp 2018-03-09 14:33:45.000000000 +0000 +++ new/src/hotspot/share/interpreter/interpreterRuntime.hpp 2018-03-09 14:33:45.000000000 +0000 @@ -37,6 +37,12 @@ // 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 @@ -169,6 +175,12 @@ // 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);