< prev index next >

src/hotspot/share/runtime/continuationEntry.hpp

Print this page

 39 
 40 // Metadata stored in the continuation entry frame
 41 class ContinuationEntry {
 42   ContinuationEntryPD _pd;
 43 #ifdef ASSERT
 44 private:
 45   static const int COOKIE_VALUE = 0x1234;
 46   int cookie;
 47 
 48 public:
 49   static int cookie_value() { return COOKIE_VALUE; }
 50   static ByteSize cookie_offset() { return byte_offset_of(ContinuationEntry, cookie); }
 51 
 52   void verify_cookie() {
 53     assert(cookie == COOKIE_VALUE, "Bad cookie: %#x, expected: %#x", cookie, COOKIE_VALUE);
 54   }
 55 #endif
 56 
 57 public:
 58   static int _return_pc_offset; // friend gen_continuation_enter


 59   static void set_enter_code(nmethod* nm, int interpreted_entry_offset);
 60   static bool is_interpreted_call(address call_address);
 61 
 62 private:
 63   static address _return_pc;
 64   static nmethod* _enter_special;
 65   static int _interpreted_entry_offset;
 66 
 67 private:
 68   ContinuationEntry* _parent;
 69   oopDesc* _cont;
 70   oopDesc* _chunk;
 71   int _flags;
 72   // Size in words of the stack arguments of the bottom frame on stack if compiled 0 otherwise.
 73   // The caller (if there is one) is the still frozen top frame in the StackChunk.
 74   int _argsize;
 75   intptr_t* _parent_cont_fastpath;
 76 #ifdef _LP64
 77   int64_t   _parent_held_monitor_count;
 78 #else

 39 
 40 // Metadata stored in the continuation entry frame
 41 class ContinuationEntry {
 42   ContinuationEntryPD _pd;
 43 #ifdef ASSERT
 44 private:
 45   static const int COOKIE_VALUE = 0x1234;
 46   int cookie;
 47 
 48 public:
 49   static int cookie_value() { return COOKIE_VALUE; }
 50   static ByteSize cookie_offset() { return byte_offset_of(ContinuationEntry, cookie); }
 51 
 52   void verify_cookie() {
 53     assert(cookie == COOKIE_VALUE, "Bad cookie: %#x, expected: %#x", cookie, COOKIE_VALUE);
 54   }
 55 #endif
 56 
 57 public:
 58   static int _return_pc_offset; // friend gen_continuation_enter
 59   static int _thaw_call_pc_offset;
 60   static address _thaw_call_pc;
 61   static void set_enter_code(nmethod* nm, int interpreted_entry_offset);
 62   static bool is_interpreted_call(address call_address);
 63 
 64 private:
 65   static address _return_pc;
 66   static nmethod* _enter_special;
 67   static int _interpreted_entry_offset;
 68 
 69 private:
 70   ContinuationEntry* _parent;
 71   oopDesc* _cont;
 72   oopDesc* _chunk;
 73   int _flags;
 74   // Size in words of the stack arguments of the bottom frame on stack if compiled 0 otherwise.
 75   // The caller (if there is one) is the still frozen top frame in the StackChunk.
 76   int _argsize;
 77   intptr_t* _parent_cont_fastpath;
 78 #ifdef _LP64
 79   int64_t   _parent_held_monitor_count;
 80 #else
< prev index next >