Skip to content

Commit 756743d

Browse files
committed
release carrier on Object.wait
1 parent 3ead0d8 commit 756743d

File tree

71 files changed

+1580
-548
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

71 files changed

+1580
-548
lines changed

src/hotspot/cpu/aarch64/continuationFreezeThaw_aarch64.inline.hpp

Lines changed: 46 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -155,10 +155,16 @@ inline void FreezeBase::relativize_interpreted_frame_metadata(const frame& f, co
155155
// extended_sp is already relativized by TemplateInterpreterGenerator::generate_normal_entry or
156156
// AbstractInterpreter::layout_activation
157157

158+
// The interpreter native wrapper code adds space in the stack equal to size_of_parameters()
159+
// after the fixed part of the frame. For wait0 this is equal to 3 words (this + long parameter).
160+
// We adjust by this size since otherwise the saved last sp will be less than the extended_sp.
161+
DEBUG_ONLY(Method* m = hf.interpreter_frame_method();)
162+
DEBUG_ONLY(int extra_space = m->is_object_wait0() ? m->size_of_parameters() : 0;)
163+
158164
assert((hf.fp() - hf.unextended_sp()) == (f.fp() - f.unextended_sp()), "");
159165
assert(hf.unextended_sp() == (intptr_t*)hf.at(frame::interpreter_frame_last_sp_offset), "");
160166
assert(hf.unextended_sp() <= (intptr_t*)hf.at(frame::interpreter_frame_initial_sp_offset), "");
161-
assert(hf.unextended_sp() > (intptr_t*)hf.at(frame::interpreter_frame_extended_sp_offset), "");
167+
assert(hf.unextended_sp() + extra_space > (intptr_t*)hf.at(frame::interpreter_frame_extended_sp_offset), "");
162168
assert(hf.fp() > (intptr_t*)hf.at(frame::interpreter_frame_initial_sp_offset), "");
163169
assert(hf.fp() <= (intptr_t*)hf.at(frame::interpreter_frame_locals_offset), "");
164170
}
@@ -219,7 +225,6 @@ template<typename FKind> frame ThawBase::new_stack_frame(const frame& hf, frame&
219225
// If caller is interpreted it already made room for the callee arguments
220226
int overlap = caller.is_interpreted_frame() ? ContinuationHelper::InterpretedFrame::stack_argsize(hf) : 0;
221227
const int fsize = (int)(ContinuationHelper::InterpretedFrame::frame_bottom(hf) - hf.unextended_sp() - overlap);
222-
const int locals = hf.interpreter_frame_method()->max_locals();
223228
intptr_t* frame_sp = caller.unextended_sp() - fsize;
224229
intptr_t* fp = frame_sp + (hf.fp() - heap_sp);
225230
if ((intptr_t)fp % frame::frame_alignment != 0) {
@@ -258,7 +263,7 @@ template<typename FKind> frame ThawBase::new_stack_frame(const frame& hf, frame&
258263
// we need to recreate a "real" frame pointer, pointing into the stack
259264
fp = frame_sp + FKind::size(hf) - frame::sender_sp_offset;
260265
} else {
261-
fp = FKind::stub
266+
fp = FKind::stub || FKind::native
262267
? frame_sp + fsize - frame::sender_sp_offset // fp always points to the address below the pushed return pc. We need correct address.
263268
: *(intptr_t**)(hf.sp() - frame::sender_sp_offset); // we need to re-read fp because it may be an oop and we might have fixed the frame.
264269
}
@@ -287,10 +292,32 @@ inline void ThawBase::patch_pd(frame& f, intptr_t* caller_sp) {
287292
Unimplemented();
288293
}
289294

290-
inline intptr_t* ThawBase::push_preempt_rerun_adapter(frame top, bool is_interpreted_frame) {
295+
inline void ThawBase::fix_native_return_pc_pd(frame& top) {
296+
// Nothing to do since the last pc saved before making the call to
297+
// JVM_MonitorWait() was already set to the correct resume pc. Just
298+
// do some sanity check.
299+
#ifdef ASSERT
300+
Method* method = top.is_interpreted_frame() ? top.interpreter_frame_method() : CodeCache::find_blob(top.pc())->as_nmethod()->method();
301+
assert(method->is_object_wait0(), "");
302+
#endif
303+
}
304+
305+
inline intptr_t* ThawBase::push_resume_adapter(frame& top) {
291306
intptr_t* sp = top.sp();
292307
CodeBlob* cb = top.cb();
293-
if (!is_interpreted_frame && cb->frame_size() == 2) {
308+
309+
#ifdef ASSERT
310+
RegisterMap map(JavaThread::current(),
311+
RegisterMap::UpdateMap::skip,
312+
RegisterMap::ProcessFrames::skip,
313+
RegisterMap::WalkContinuation::skip);
314+
frame caller = top.sender(&map);
315+
intptr_t link_addr = (intptr_t)ContinuationHelper::Frame::callee_link_address(caller);
316+
assert(sp[-2] == link_addr, "wrong link address: " INTPTR_FORMAT " != " INTPTR_FORMAT, sp[-2], link_addr);
317+
#endif
318+
319+
bool interpreted = top.is_interpreted_frame();
320+
if (!interpreted && cb->frame_size() == 2) {
294321
// C2 runtime stub case. For aarch64 the real size of the c2 runtime stub is 2 words bigger
295322
// than what we think, i.e. size is 4. This is because the _last_Java_sp is not set to the
296323
// sp right before making the call to the VM, but rather it is artificially set 2 words above
@@ -306,21 +333,19 @@ inline intptr_t* ThawBase::push_preempt_rerun_adapter(frame top, bool is_interpr
306333
}
307334

308335
intptr_t* fp = sp - frame::sender_sp_offset;
309-
address pc = is_interpreted_frame ? Interpreter::cont_preempt_rerun_interpreter_adapter()
310-
: StubRoutines::cont_preempt_rerun_compiler_adapter();
336+
address pc = interpreted ? Interpreter::cont_resume_interpreter_adapter()
337+
: StubRoutines::cont_resume_compiler_adapter();
311338

312339
sp -= frame::metadata_words;
313340
*(address*)(sp - frame::sender_sp_ret_address_offset()) = pc;
314341
*(intptr_t**)(sp - frame::sender_sp_offset) = fp;
315342

316-
log_develop_trace(continuations, preempt)("push_preempt_rerun_%s_adapter() initial sp: " INTPTR_FORMAT " final sp: " INTPTR_FORMAT " fp: " INTPTR_FORMAT,
317-
is_interpreted_frame ? "interpreter" : "safepointblob", p2i(sp + frame::metadata_words), p2i(sp), p2i(fp));
343+
log_develop_trace(continuations, preempt)("push_resume_%s_adapter() initial sp: " INTPTR_FORMAT " final sp: " INTPTR_FORMAT " fp: " INTPTR_FORMAT,
344+
interpreted ? "interpreter" : "compiler", p2i(sp + frame::metadata_words), p2i(sp), p2i(fp));
318345
return sp;
319346
}
320347

321-
inline intptr_t* ThawBase::push_preempt_monitorenter_redo(stackChunkOop chunk) {
322-
323-
// fprintf(stderr, "push_preempt_monitorenter_redo\n");
348+
inline intptr_t* ThawBase::push_resume_monitor_operation(stackChunkOop chunk) {
324349
frame enterSpecial = new_entry_frame();
325350
intptr_t* sp = enterSpecial.sp();
326351

@@ -329,15 +354,15 @@ inline intptr_t* ThawBase::push_preempt_monitorenter_redo(stackChunkOop chunk) {
329354
sp[1] = (intptr_t)StubRoutines::cont_returnBarrier();
330355
sp[0] = (intptr_t)enterSpecial.fp();
331356

332-
// Now push the ObjectMonitor*
357+
// Now push the ObjectWaiter*
333358
sp -= frame::metadata_words;
334-
sp[1] = (intptr_t)chunk->objectMonitor(); // alignment
335-
sp[0] = (intptr_t)chunk->objectMonitor();
359+
sp[1] = (intptr_t)chunk->object_waiter(); // alignment
360+
sp[0] = (intptr_t)chunk->object_waiter();
336361

337-
// Finally arrange to return to the monitorenter_redo stub
338-
sp[-1] = (intptr_t)StubRoutines::cont_preempt_monitorenter_redo();
362+
// Finally arrange to return to the resume_monitor_operation stub
363+
sp[-1] = (intptr_t)StubRoutines::cont_resume_monitor_operation();
339364
sp[-2] = (intptr_t)enterSpecial.fp();
340-
log_develop_trace(continuations, preempt)("push_preempt_monitorenter_redo initial sp: " INTPTR_FORMAT " final sp: " INTPTR_FORMAT, p2i(sp + 2 * frame::metadata_words), p2i(sp));
365+
log_develop_trace(continuations, preempt)("push_resume_monitor_operation initial sp: " INTPTR_FORMAT " final sp: " INTPTR_FORMAT, p2i(sp + 2 * frame::metadata_words), p2i(sp));
341366
return sp;
342367
}
343368

@@ -349,7 +374,9 @@ inline void ThawBase::derelativize_interpreted_frame_metadata(const frame& hf, c
349374
assert(f.at_absolute(frame::interpreter_frame_monitor_block_top_offset) <= frame::interpreter_frame_initial_sp_offset, "");
350375

351376
// Make sure that extended_sp is kept relativized.
352-
assert((intptr_t*)f.at_relative(frame::interpreter_frame_extended_sp_offset) < f.unextended_sp(), "");
377+
DEBUG_ONLY(Method* m = hf.interpreter_frame_method();)
378+
DEBUG_ONLY(int extra_space = m->is_object_wait0() ? m->size_of_parameters() : 0;) // see comment in relativize_interpreted_frame_metadata()
379+
assert((intptr_t*)f.at_relative(frame::interpreter_frame_extended_sp_offset) < f.unextended_sp() + extra_space, "");
353380
}
354381

355382
#endif // CPU_AARCH64_CONTINUATIONFREEZETHAW_AARCH64_INLINE_HPP

src/hotspot/cpu/aarch64/continuationHelper_aarch64.inline.hpp

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -41,21 +41,18 @@ static inline intptr_t** link_address(const frame& f) {
4141
}
4242

4343
static inline void patch_return_pc_with_preempt_stub(frame& f) {
44-
// Unlike x86 we don't know where in the callee frame the return pc is
45-
// saved so we can't patch the return from the VM call back to Java. If
46-
// the target is coming from compiled code we will patch the return from
47-
// the safepoint handler blob back to the compiled method instead. If
48-
// it's coming from the interpreter, the target will check for preemption
49-
// once it returns to the interpreter and will manually jump to the
50-
// preempt stub.
51-
if (!f.is_interpreted_frame()) {
52-
assert(f.is_runtime_frame(), "invariant");
44+
if (f.is_runtime_frame()) {
45+
// Unlike x86 we don't know where in the callee frame the return pc is
46+
// saved so we can't patch the return from the VM call back to Java.
47+
// Instead, we will patch the return from the runtime stub back to the
48+
// compiled method so that the target returns to the preempt cleanup stub.
5349
intptr_t* caller_sp = f.sp() + f.cb()->frame_size();
5450
caller_sp[-1] = (intptr_t)StubRoutines::cont_preempt_stub();
5551
} else {
52+
// The target will check for preemption once it returns to the interpreter
53+
// or the native wrapper code and will manually jump to the preempt stub.
5654
JavaThread *thread = JavaThread::current();
5755
thread->set_preempt_alternate_return(StubRoutines::cont_preempt_stub());
58-
thread->set_preempt_alternate_return_sp((address)f.sp());
5956
}
6057
}
6158

src/hotspot/cpu/aarch64/frame_aarch64.hpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,8 @@
7373
sender_sp_offset = 2,
7474

7575
// Interpreter frames
76-
interpreter_frame_oop_temp_offset = 3, // for native calls only
76+
interpreter_frame_result_handler_offset = 3, // for native calls only
77+
interpreter_frame_oop_temp_offset = 2, // for native calls only
7778

7879
interpreter_frame_sender_sp_offset = -1,
7980
// outgoing sp before a call to an invoked method

src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1965,13 +1965,8 @@ void MacroAssembler::call_VM_leaf_base(address entry_point,
19651965
if (entry_point == CAST_FROM_FN_PTR(address, InterpreterRuntime::monitorenter) ||
19661966
entry_point == CAST_FROM_FN_PTR(address, InterpreterRuntime::monitorenter_obj)) {
19671967
ldr(rscratch1, Address(rthread, JavaThread::preempt_alternate_return_offset()));
1968-
ldr(rscratch2, Address(rthread, in_bytes(JavaThread::preempt_alternate_return_offset()) + wordSize));
19691968
cbz(rscratch1, not_preempted);
1970-
mov(r4, sp); // r4 is clobbered by VM calls, so free here
1971-
cmp(rscratch2, r4);
1972-
br(LT, not_preempted);
19731969
str(zr, Address(rthread, JavaThread::preempt_alternate_return_offset()));
1974-
str(zr, Address(rthread, in_bytes(JavaThread::preempt_alternate_return_offset()) + wordSize));
19751970
br(rscratch1);
19761971
}
19771972

src/hotspot/cpu/aarch64/sharedRuntime_aarch64.cpp

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1754,9 +1754,8 @@ nmethod* SharedRuntime::generate_native_wrapper(MacroAssembler* masm,
17541754
// Change state to native (we save the return address in the thread, since it might not
17551755
// be pushed on the stack when we do a stack traversal).
17561756
// We use the same pc/oopMap repeatedly when we call out
1757-
1758-
Label native_return;
1759-
__ set_last_Java_frame(sp, noreg, native_return, rscratch1);
1757+
Label resume_pc;
1758+
__ set_last_Java_frame(sp, noreg, resume_pc, rscratch1);
17601759

17611760
Label dtrace_method_entry, dtrace_method_entry_done;
17621761
{
@@ -1863,11 +1862,6 @@ nmethod* SharedRuntime::generate_native_wrapper(MacroAssembler* masm,
18631862

18641863
__ rt_call(native_func);
18651864

1866-
__ bind(native_return);
1867-
1868-
intptr_t return_pc = (intptr_t) __ pc();
1869-
oop_maps->add_gc_map(return_pc - start, map);
1870-
18711865
// Verify or restore cpu control state after JNI call
18721866
__ restore_cpu_control_state_after_jni(rscratch1, rscratch2);
18731867

@@ -1934,6 +1928,20 @@ nmethod* SharedRuntime::generate_native_wrapper(MacroAssembler* masm,
19341928
__ stlrw(rscratch1, rscratch2);
19351929
__ bind(after_transition);
19361930

1931+
// Check preemption for Object.wait()
1932+
if (method->is_object_wait0()) {
1933+
Label not_preempted;
1934+
__ ldr(rscratch1, Address(rthread, JavaThread::preempt_alternate_return_offset()));
1935+
__ cbz(rscratch1, not_preempted);
1936+
__ str(zr, Address(rthread, JavaThread::preempt_alternate_return_offset()));
1937+
__ br(rscratch1);
1938+
__ bind(not_preempted);
1939+
}
1940+
__ bind(resume_pc);
1941+
1942+
intptr_t the_pc = (intptr_t) __ pc();
1943+
oop_maps->add_gc_map(the_pc - start, map);
1944+
19371945
Label reguard;
19381946
Label reguard_done;
19391947
__ ldrb(rscratch1, Address(rthread, JavaThread::stack_guard_state_offset()));

src/hotspot/cpu/aarch64/stackChunkFrameStream_aarch64.inline.hpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,7 @@ inline int StackChunkFrameStream<frame_kind>::interpreter_frame_num_oops() const
116116
f.interpreted_frame_oop_map(&mask);
117117
return mask.num_oops()
118118
+ 1 // for the mirror oop
119+
+ (f.interpreter_frame_method()->is_native() ? 1 : 0) // temp oop slot
119120
+ pointer_delta_as_int((intptr_t*)f.interpreter_frame_monitor_begin(),
120121
(intptr_t*)f.interpreter_frame_monitor_end())/BasicObjectLock::size();
121122
}

src/hotspot/cpu/aarch64/stubGenerator_aarch64.cpp

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -7158,18 +7158,16 @@ class StubGenerator: public StubCodeGenerator {
71587158
__ mov(sp, rscratch2);
71597159

71607160
Label preemption_cancelled;
7161-
// FIXME: Whose responsibility is it to clear this flag?
71627161
__ ldrb(rscratch1, Address(rthread, JavaThread::preemption_cancelled_offset()));
71637162
__ cbnz(rscratch1, preemption_cancelled);
71647163

7165-
//__ trace("Remove enterSpecial frame from the stack and return to Continuation.run()");
71667164
// Remove enterSpecial frame from the stack and return to Continuation.run()
71677165
SharedRuntime::continuation_enter_cleanup(_masm);
71687166
__ leave();
71697167
__ ret(lr);
71707168

71717169
__ bind(preemption_cancelled);
7172-
//__ trace("preemption_cancelled");
7170+
__ strb(zr, Address(rthread, JavaThread::preemption_cancelled_offset()));
71737171
__ lea(rfp, Address(sp, checked_cast<int32_t>(ContinuationEntry::size())));
71747172
__ lea(rscratch1, ExternalAddress((address)&ContinuationEntry::_thaw_call_pc));
71757173
__ ldr(rscratch1, Address(rscratch1));
@@ -7178,9 +7176,9 @@ class StubGenerator: public StubCodeGenerator {
71787176
return start;
71797177
}
71807178

7181-
address generate_cont_preempt_rerun_compiler_adapter() {
7179+
address generate_cont_resume_compiler_adapter() {
71827180
if (!Continuations::enabled()) return nullptr;
7183-
StubCodeMark mark(this, "StubRoutines", "Continuation preempt safepoint blob adapter");
7181+
StubCodeMark mark(this, "StubRoutines", "Continuation resume compiler adapter");
71847182
address start = __ pc();
71857183

71867184
// The safepoint blob handler expects that r20, being a callee saved register, will be preserved
@@ -7196,25 +7194,25 @@ class StubGenerator: public StubCodeGenerator {
71967194
return start;
71977195
}
71987196

7199-
address generate_cont_preempt_monitorenter_redo() {
7197+
address generate_cont_resume_monitor_operation() {
72007198
if (!Continuations::enabled()) return nullptr;
7201-
StubCodeMark mark(this, "StubRoutines","Continuation monitorenter redo stub");
7199+
StubCodeMark mark(this, "StubRoutines","Continuation resume monitor operation");
72027200
address start = __ pc();
72037201

7204-
const Register mon_reg = c_rarg1;
7205-
__ ldr(mon_reg, __ post(sp, 2 * wordSize));
7202+
const Register waiter_reg = c_rarg1;
7203+
__ ldr(waiter_reg, __ post(sp, 2 * wordSize));
72067204

72077205
#ifdef ASSERT
72087206
{ Label L;
7209-
__ cbnz(mon_reg, L);
7207+
__ cbnz(waiter_reg, L);
72107208
__ stop("ObjectMonitor to use is null");
72117209
__ bind(L);
72127210
}
72137211
#endif // ASSERT
72147212

72157213
__ set_last_Java_frame(sp, rfp, lr, rscratch1);
72167214
__ mov(c_rarg0, rthread);
7217-
__ rt_call(CAST_FROM_FN_PTR(address, SharedRuntime::redo_monitorenter));
7215+
__ rt_call(CAST_FROM_FN_PTR(address, SharedRuntime::resume_monitor_operation));
72187216
__ reset_last_Java_frame(true);
72197217

72207218
Label failAcquire;
@@ -8510,8 +8508,8 @@ class StubGenerator: public StubCodeGenerator {
85108508
StubRoutines::_cont_returnBarrier = generate_cont_returnBarrier();
85118509
StubRoutines::_cont_returnBarrierExc = generate_cont_returnBarrier_exception();
85128510
StubRoutines::_cont_preempt_stub = generate_cont_preempt_stub();
8513-
StubRoutines::_cont_preempt_monitorenter_redo = generate_cont_preempt_monitorenter_redo();
8514-
StubRoutines::_cont_preempt_rerun_compiler_adapter = generate_cont_preempt_rerun_compiler_adapter();
8511+
StubRoutines::_cont_resume_monitor_operation = generate_cont_resume_monitor_operation();
8512+
StubRoutines::_cont_resume_compiler_adapter = generate_cont_resume_compiler_adapter();
85158513

85168514
JFR_ONLY(generate_jfr_stubs();)
85178515
}

src/hotspot/cpu/aarch64/templateInterpreterGenerator_aarch64.cpp

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -612,7 +612,7 @@ address TemplateInterpreterGenerator::generate_safept_entry_for(
612612
return entry;
613613
}
614614

615-
address TemplateInterpreterGenerator::generate_cont_preempt_rerun_interpreter_adapter() {
615+
address TemplateInterpreterGenerator::generate_cont_resume_interpreter_adapter() {
616616
if (!Continuations::enabled()) return nullptr;
617617
address start = __ pc();
618618

@@ -1354,6 +1354,8 @@ address TemplateInterpreterGenerator::generate_native_entry(bool synchronized) {
13541354
// result handler is in r0
13551355
// set result handler
13561356
__ mov(result_handler, r0);
1357+
__ str(r0, Address(rfp, frame::interpreter_frame_result_handler_offset * wordSize));
1358+
13571359
// pass mirror handle if static call
13581360
{
13591361
Label L;
@@ -1392,8 +1394,8 @@ address TemplateInterpreterGenerator::generate_native_entry(bool synchronized) {
13921394
// Set the last Java PC in the frame anchor to be the return address from
13931395
// the call to the native method: this will allow the debugger to
13941396
// generate an accurate stack trace.
1395-
Label native_return;
1396-
__ set_last_Java_frame(esp, rfp, native_return, rscratch1);
1397+
Label resume_pc;
1398+
__ set_last_Java_frame(esp, rfp, resume_pc, rscratch1);
13971399

13981400
// change thread state
13991401
#ifdef ASSERT
@@ -1414,7 +1416,7 @@ address TemplateInterpreterGenerator::generate_native_entry(bool synchronized) {
14141416

14151417
// Call the native method.
14161418
__ blr(r10);
1417-
__ bind(native_return);
1419+
14181420
__ get_method(rmethod);
14191421
// result potentially in r0 or v0
14201422

@@ -1479,6 +1481,18 @@ address TemplateInterpreterGenerator::generate_native_entry(bool synchronized) {
14791481
__ lea(rscratch2, Address(rthread, JavaThread::thread_state_offset()));
14801482
__ stlrw(rscratch1, rscratch2);
14811483

1484+
// Check preemption for Object.wait()
1485+
Label not_preempted;
1486+
__ ldr(rscratch1, Address(rthread, JavaThread::preempt_alternate_return_offset()));
1487+
__ cbz(rscratch1, not_preempted);
1488+
__ str(zr, Address(rthread, JavaThread::preempt_alternate_return_offset()));
1489+
__ br(rscratch1);
1490+
__ bind(resume_pc);
1491+
// On resume we need to set up stack as expected
1492+
__ push(dtos);
1493+
__ push(ltos);
1494+
__ bind(not_preempted);
1495+
14821496
// reset_last_Java_frame
14831497
__ reset_last_Java_frame(true);
14841498

@@ -1497,6 +1511,7 @@ address TemplateInterpreterGenerator::generate_native_entry(bool synchronized) {
14971511
{
14981512
Label no_oop;
14991513
__ adr(t, ExternalAddress(AbstractInterpreter::result_handler(T_OBJECT)));
1514+
__ ldr(result_handler, Address(rfp, frame::interpreter_frame_result_handler_offset*wordSize));
15001515
__ cmp(t, result_handler);
15011516
__ br(Assembler::NE, no_oop);
15021517
// Unbox oop result, e.g. JNIHandles::resolve result.

src/hotspot/cpu/arm/continuationFreezeThaw_arm.inline.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,12 +91,12 @@ inline void ThawBase::patch_pd(frame& f, intptr_t* caller_sp) {
9191
Unimplemented();
9292
}
9393

94-
inline intptr_t* ThawBase::push_preempt_rerun_adapter(frame top, bool is_interpreted_frame) {
94+
inline intptr_t* ThawBase::push_resume_adapter(frame& top, bool is_interpreted_frame) {
9595
Unimplemented();
9696
return nullptr;
9797
}
9898

99-
inline intptr_t* ThawBase::push_preempt_monitorenter_redo(stackChunkOop chunk) {
99+
inline intptr_t* ThawBase::push_resume_monitor_operation(stackChunkOop chunk) {
100100
Unimplemented();
101101
return nullptr;
102102
}

src/hotspot/cpu/arm/templateInterpreterGenerator_arm.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -458,7 +458,7 @@ address TemplateInterpreterGenerator::generate_safept_entry_for(TosState state,
458458
return entry;
459459
}
460460

461-
address TemplateInterpreterGenerator::generate_cont_preempt_rerun_interpreter_adapter() {
461+
address TemplateInterpreterGenerator::generate_cont_resume_interpreter_adapter() {
462462
return nullptr;
463463
}
464464

0 commit comments

Comments
 (0)