Skip to content

Commit

Permalink
v1
Browse files Browse the repository at this point in the history
  • Loading branch information
pchilano committed Jan 8, 2025
1 parent bcefab5 commit 558caee
Show file tree
Hide file tree
Showing 4 changed files with 16 additions and 0 deletions.
4 changes: 4 additions & 0 deletions src/hotspot/cpu/aarch64/frame_aarch64.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -163,6 +163,10 @@ bool frame::safe_for_sender(JavaThread *thread) {
}

if (Continuation::is_return_barrier_entry(sender_pc)) {
// Check that the frame belongs to a Continuation.
if (!Continuation::is_frame_in_continuation(thread, *this)) {
return false;
}
// If our sender_pc is the return barrier, then our "real" sender is the continuation entry
frame s = Continuation::continuation_bottom_sender(thread, *this, sender_sp);
sender_sp = s.sp();
Expand Down
4 changes: 4 additions & 0 deletions src/hotspot/cpu/ppc/frame_ppc.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,10 @@ bool frame::safe_for_sender(JavaThread *thread) {
address sender_pc = (address) sender_abi->lr;

if (Continuation::is_return_barrier_entry(sender_pc)) {
// Check that the frame belongs to a Continuation.
if (!Continuation::is_frame_in_continuation(thread, *this)) {
return false;
}
// If our sender_pc is the return barrier, then our "real" sender is the continuation entry
frame s = Continuation::continuation_bottom_sender(thread, *this, sender_sp);
sender_sp = s.sp();
Expand Down
4 changes: 4 additions & 0 deletions src/hotspot/cpu/riscv/frame_riscv.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -158,6 +158,10 @@ bool frame::safe_for_sender(JavaThread *thread) {
}

if (Continuation::is_return_barrier_entry(sender_pc)) {
// Check that the frame belongs to a Continuation.
if (!Continuation::is_frame_in_continuation(thread, *this)) {
return false;
}
// If our sender_pc is the return barrier, then our "real" sender is the continuation entry
frame s = Continuation::continuation_bottom_sender(thread, *this, sender_sp);
sender_sp = s.sp();
Expand Down
4 changes: 4 additions & 0 deletions src/hotspot/cpu/x86/frame_x86.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -154,6 +154,10 @@ bool frame::safe_for_sender(JavaThread *thread) {
}

if (Continuation::is_return_barrier_entry(sender_pc)) {
// Check that the frame belongs to a Continuation.
if (!Continuation::is_frame_in_continuation(thread, *this)) {
return false;
}
// If our sender_pc is the return barrier, then our "real" sender is the continuation entry
frame s = Continuation::continuation_bottom_sender(thread, *this, sender_sp);
sender_sp = s.sp();
Expand Down

0 comments on commit 558caee

Please sign in to comment.