129 static ContinuationEntry* from_frame(const frame& f);
130 frame to_frame() const;
131 void update_register_map(RegisterMap* map) const;
132 void flush_stack_processing(JavaThread* thread) const;
133
134 inline intptr_t* bottom_sender_sp() const;
135 inline oop cont_oop(const JavaThread* thread) const;
136 inline oop scope(const JavaThread* thread) const;
137 inline static oop cont_oop_or_null(const ContinuationEntry* ce, const JavaThread* thread);
138
139 oop* cont_addr() { return (oop*)&_cont; }
140 oop* chunk_addr() { return (oop*)&_chunk; }
141
142 bool is_virtual_thread() const { return _flags != 0; }
143
144 #ifndef PRODUCT
145 void describe(FrameValues& values, int frame_no) const;
146 #endif
147
148 #ifdef ASSERT
149 static bool assert_entry_frame_laid_out(JavaThread* thread);
150 #endif
151 };
152
153 #endif // SHARE_VM_RUNTIME_CONTINUATIONENTRY_HPP
|
129 static ContinuationEntry* from_frame(const frame& f);
130 frame to_frame() const;
131 void update_register_map(RegisterMap* map) const;
132 void flush_stack_processing(JavaThread* thread) const;
133
134 inline intptr_t* bottom_sender_sp() const;
135 inline oop cont_oop(const JavaThread* thread) const;
136 inline oop scope(const JavaThread* thread) const;
137 inline static oop cont_oop_or_null(const ContinuationEntry* ce, const JavaThread* thread);
138
139 oop* cont_addr() { return (oop*)&_cont; }
140 oop* chunk_addr() { return (oop*)&_chunk; }
141
142 bool is_virtual_thread() const { return _flags != 0; }
143
144 #ifndef PRODUCT
145 void describe(FrameValues& values, int frame_no) const;
146 #endif
147
148 #ifdef ASSERT
149 static bool assert_entry_frame_laid_out(JavaThread* thread, bool preempted = false);
150 #endif
151 };
152
153 #endif // SHARE_VM_RUNTIME_CONTINUATIONENTRY_HPP
|