8287512: continuationEntry.hpp has incomplete definitions

Reviewed-by: coleenp, pchilanomate
This commit is contained in:
Ron Pressler 2022-06-01 14:11:55 +00:00 committed by Patricio Chilano Mateo
parent b2b4ee212f
commit f8eb7a892f
5 changed files with 22 additions and 23 deletions

@ -1050,7 +1050,7 @@ static void gen_continuation_enter(MacroAssembler* masm,
__ rt_call(CAST_FROM_FN_PTR(address, StubRoutines::cont_thaw()));
oop_maps->add_gc_map(__ pc() - start, map->deep_copy());
ContinuationEntry::return_pc_offset = __ pc() - start;
ContinuationEntry::_return_pc_offset = __ pc() - start;
__ post_call_nop();
__ bind(exit);
@ -1195,7 +1195,7 @@ nmethod* SharedRuntime::generate_native_wrapper(MacroAssembler* masm,
in_ByteSize(-1),
oop_maps,
exception_offset);
ContinuationEntry::set_enter_nmethod(nm);
ContinuationEntry::set_enter_code(nm);
return nm;
}

@ -1317,7 +1317,7 @@ static void gen_continuation_enter(MacroAssembler* masm,
__ movptr(rbx, (intptr_t) StubRoutines::cont_thaw());
__ call(rbx);
oop_maps->add_gc_map(__ pc() - start, map->deep_copy());
ContinuationEntry::return_pc_offset = __ pc() - start;
ContinuationEntry::_return_pc_offset = __ pc() - start;
__ post_call_nop();
__ bind(exit);
@ -1465,7 +1465,7 @@ nmethod* SharedRuntime::generate_native_wrapper(MacroAssembler* masm,
in_ByteSize(-1),
oop_maps,
exception_offset);
ContinuationEntry::set_enter_nmethod(nm);
ContinuationEntry::set_enter_code(nm);
return nm;
}

@ -32,14 +32,12 @@
#include "runtime/stubRoutines.hpp"
#include "runtime/thread.inline.hpp"
int ContinuationEntry::return_pc_offset = 0;
nmethod* ContinuationEntry::continuation_enter = nullptr;
address ContinuationEntry::return_pc = nullptr;
int ContinuationEntry::_return_pc_offset = 0;
address ContinuationEntry::_return_pc = nullptr;
void ContinuationEntry::set_enter_nmethod(nmethod* nm) {
assert(return_pc_offset != 0, "");
continuation_enter = nm;
return_pc = nm->code_begin() + return_pc_offset;
void ContinuationEntry::set_enter_code(CompiledMethod* cm) {
assert(_return_pc_offset != 0, "");
_return_pc = cm->code_begin() + _return_pc_offset;
}
ContinuationEntry* ContinuationEntry::from_frame(const frame& f) {

@ -30,7 +30,6 @@
#include "runtime/continuation.hpp"
#include "utilities/sizes.hpp"
class nmethod;
class RegisterMap;
class OopMap;
class JavaThread;
@ -52,12 +51,11 @@ public:
#endif
public:
static int return_pc_offset; // friend gen_continuation_enter
static void set_enter_nmethod(nmethod* nm); // friend SharedRuntime::generate_native_wrapper
static int _return_pc_offset; // friend gen_continuation_enter
static void set_enter_code(CompiledMethod* nm); // friend SharedRuntime::generate_native_wrapper
private:
static nmethod* continuation_enter;
static address return_pc;
static address _return_pc;
private:
ContinuationEntry* _parent;
@ -87,7 +85,7 @@ public:
ContinuationEntry* parent() const { return _parent; }
int parent_held_monitor_count() const { return _parent_held_monitor_count; }
static address entry_pc() { return return_pc; }
static address entry_pc() { return _return_pc; }
intptr_t* entry_sp() const { return (intptr_t*)this; }
intptr_t* entry_fp() const;
@ -123,15 +121,11 @@ public:
}
inline oop cont_oop() const;
oop scope() const { return Continuation::continuation_scope(cont_oop()); }
inline oop scope() const;
inline static oop cont_oop_or_null(const ContinuationEntry* ce);
bool is_virtual_thread() const { return _flags != 0; }
static oop cont_oop_or_null(const ContinuationEntry* ce) {
return ce == nullptr ? nullptr : ce->cont_oop();
}
#ifndef PRODUCT
void describe(FrameValues& values, int frame_no) const {
address usp = (address)this;

@ -36,5 +36,12 @@ inline oop ContinuationEntry::cont_oop() const {
return NativeAccess<>::oop_load(&snapshot);
}
inline oop ContinuationEntry::cont_oop_or_null(const ContinuationEntry* ce) {
return ce == nullptr ? nullptr : ce->cont_oop();
}
inline oop ContinuationEntry::scope() const {
return Continuation::continuation_scope(cont_oop());
}
#endif // SHARE_VM_RUNTIME_CONTINUATIONENTRY_INLINE_HPP