< 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 >