8287512: continuationEntry.hpp has incomplete definitions
Reviewed-by: coleenp, pchilanomate
This commit is contained in:
parent
b2b4ee212f
commit
f8eb7a892f
src/hotspot
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user