< prev index next >

src/hotspot/share/runtime/continuationHelper.hpp

Print this page

 55   class NonInterpretedFrame;
 56 
 57   // Concrete helpers for describing concrete types of frames
 58   class InterpretedFrame;
 59   class NonInterpretedUnknownFrame;
 60   class CompiledFrame;
 61   class NativeFrame;
 62   class StubFrame;
 63 };
 64 
 65 class ContinuationHelper::Frame : public AllStatic {
 66 public:
 67   static const bool interpreted = false;
 68   static const bool compiled = false;
 69   static const bool stub = false;
 70   static const bool native = false;
 71 
 72   static inline intptr_t** callee_link_address(const frame& f);
 73   static Method* frame_method(const frame& f);
 74   static inline address real_pc(const frame& f);
 75   static inline void patch_pc(const frame& f, address pc);
 76   static address* return_pc_address(const frame& f);
 77   static address return_pc(const frame& f);
 78   static bool is_stub(CodeBlob* cb);
 79 
 80 #ifdef ASSERT
 81   static inline intptr_t* frame_top(const frame &f);
 82   static inline bool is_deopt_return(address pc, const frame& sender);
 83   static bool assert_frame_laid_out(frame f);
 84 #endif
 85 };
 86 
 87 class ContinuationHelper::InterpretedFrame : public ContinuationHelper::Frame {
 88 public:
 89   static const bool interpreted = true;
 90 
 91   static inline intptr_t* frame_top(const frame& f, InterpreterOopMap* mask);
 92   static inline intptr_t* frame_top(const frame& f);
 93   static inline intptr_t* frame_top(const frame& f, int callee_argsize, bool callee_interpreted);
 94   static inline intptr_t* frame_bottom(const frame& f);
 95   static inline intptr_t* callers_sp(const frame& f);

 55   class NonInterpretedFrame;
 56 
 57   // Concrete helpers for describing concrete types of frames
 58   class InterpretedFrame;
 59   class NonInterpretedUnknownFrame;
 60   class CompiledFrame;
 61   class NativeFrame;
 62   class StubFrame;
 63 };
 64 
 65 class ContinuationHelper::Frame : public AllStatic {
 66 public:
 67   static const bool interpreted = false;
 68   static const bool compiled = false;
 69   static const bool stub = false;
 70   static const bool native = false;
 71 
 72   static inline intptr_t** callee_link_address(const frame& f);
 73   static Method* frame_method(const frame& f);
 74   static inline address real_pc(const frame& f);
 75   static inline void patch_pc(const frame& f, address pc, bool callee_augmented = false);
 76   static address* return_pc_address(const frame& f);
 77   static address return_pc(const frame& f);
 78   static bool is_stub(CodeBlob* cb);
 79 
 80 #ifdef ASSERT
 81   static inline intptr_t* frame_top(const frame &f);
 82   static inline bool is_deopt_return(address pc, const frame& sender);
 83   static bool assert_frame_laid_out(frame f);
 84 #endif
 85 };
 86 
 87 class ContinuationHelper::InterpretedFrame : public ContinuationHelper::Frame {
 88 public:
 89   static const bool interpreted = true;
 90 
 91   static inline intptr_t* frame_top(const frame& f, InterpreterOopMap* mask);
 92   static inline intptr_t* frame_top(const frame& f);
 93   static inline intptr_t* frame_top(const frame& f, int callee_argsize, bool callee_interpreted);
 94   static inline intptr_t* frame_bottom(const frame& f);
 95   static inline intptr_t* callers_sp(const frame& f);
< prev index next >