< prev index next > src/hotspot/cpu/ppc/c1_Runtime1_ppc.cpp
Print this page
// ARG1 must hold thread address.
mr(R3_ARG1, R16_thread);
address return_pc = call_c(entry_point);
! reset_last_Java_frame();
// Check for pending exceptions.
{
ld(R0, in_bytes(Thread::pending_exception_offset()), R16_thread);
cmpdi(CCR0, R0, 0);
// ARG1 must hold thread address.
mr(R3_ARG1, R16_thread);
address return_pc = call_c(entry_point);
! // Last java sp can be null when the RT call was preempted
+ reset_last_Java_frame(false /* check_last_java_sp */);
// Check for pending exceptions.
{
ld(R0, in_bytes(Thread::pending_exception_offset()), R16_thread);
cmpdi(CCR0, R0, 0);
sp_offset += BytesPerWord;
}
frame_size_in_bytes = align_up(sp_offset, frame::alignment_in_bytes);
}
+ uint Runtime1::runtime_blob_current_thread_offset(frame f) {
+ // On PPC virtual threads don't save the JavaThread* in their context (e.g. C1 stub frames).
+ ShouldNotCallThis();
+ return 0;
+ }
OopMapSet* Runtime1::generate_exception_throw(StubAssembler* sasm, address target, bool has_argument) {
// Make a frame and preserve the caller's caller-save registers.
OopMap* oop_map = save_live_registers(sasm);
< prev index next >