Skip to content

Commit d450e34

Browse files
author
Markus Grönlund
committed
8357962: JFR Cooperative Sampling reveals inconsistent interpreter frames as part of JVMTI PopFrame
Reviewed-by: dholmes, eosterlund
1 parent 66feb49 commit d450e34

File tree

3 files changed

+3
-0
lines changed

3 files changed

+3
-0
lines changed

src/hotspot/cpu/aarch64/templateInterpreterGenerator_aarch64.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1893,6 +1893,7 @@ void TemplateInterpreterGenerator::generate_throw_exception() {
18931893

18941894
Interpreter::_remove_activation_preserving_args_entry = __ pc();
18951895
__ empty_expression_stack();
1896+
__ restore_bcp(); // We could have returned from deoptimizing this frame, so restore rbcp.
18961897
// Set the popframe_processing bit in pending_popframe_condition
18971898
// indicating that we are currently handling popframe, so that
18981899
// call_VMs that may happen later do not trigger new popframe

src/hotspot/cpu/riscv/templateInterpreterGenerator_riscv.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1646,6 +1646,7 @@ void TemplateInterpreterGenerator::generate_throw_exception() {
16461646

16471647
Interpreter::_remove_activation_preserving_args_entry = __ pc();
16481648
__ empty_expression_stack();
1649+
__ restore_bcp(); // We could have returned from deoptimizing this frame, so restore rbcp.
16491650
// Set the popframe_processing bit in pending_popframe_condition
16501651
// indicating that we are currently handling popframe, so that
16511652
// call_VMs that may happen later do not trigger new popframe

src/hotspot/cpu/x86/templateInterpreterGenerator_x86.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1441,6 +1441,7 @@ void TemplateInterpreterGenerator::generate_throw_exception() {
14411441

14421442
Interpreter::_remove_activation_preserving_args_entry = __ pc();
14431443
__ empty_expression_stack();
1444+
__ restore_bcp(); // We could have returned from deoptimizing this frame, so restore rbcp.
14441445
// Set the popframe_processing bit in pending_popframe_condition
14451446
// indicating that we are currently handling popframe, so that
14461447
// call_VMs that may happen later do not trigger new popframe

0 commit comments

Comments
 (0)