11/*
2- * Copyright (c) 2016, 2022 , Oracle and/or its affiliates. All rights reserved.
2+ * Copyright (c) 2016, 2023 , Oracle and/or its affiliates. All rights reserved.
33 * Copyright (c) 2016, 2019 SAP SE. All rights reserved.
44 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
55 *
@@ -2621,7 +2621,6 @@ void SharedRuntime::generate_deopt_blob() {
26212621
26222622 // stack: ("unpack" frame, deoptee, caller_of_deoptee, ...).
26232623
2624- {
26252624 const Register unroll_block_reg = Z_tmp_2;
26262625
26272626 // we need to set `last_Java_frame' because `fetch_unroll_info' will
@@ -2636,8 +2635,8 @@ void SharedRuntime::generate_deopt_blob() {
26362635 // despite it's marked as "leaf call"!
26372636 __ call_VM_leaf (CAST_FROM_FN_PTR (address, Deoptimization::fetch_unroll_info), Z_thread, exec_mode_reg);
26382637 // Set an oopmap for the call site this describes all our saved volatile registers
2639- int offs = __ offset ();
2640- oop_maps->add_gc_map (offs , map);
2638+ int oop_map_offs = __ offset ();
2639+ oop_maps->add_gc_map (oop_map_offs , map);
26412640
26422641 __ reset_last_Java_frame ();
26432642 // save the return value.
@@ -2679,7 +2678,6 @@ void SharedRuntime::generate_deopt_blob() {
26792678
26802679 // stack: (skeletal interpreter frame, ..., optional skeletal
26812680 // interpreter frame, caller of deoptee, ...).
2682- }
26832681
26842682 // push an "unpack" frame taking care of float / int return values.
26852683 __ push_frame (RegisterSaver::live_reg_frame_size (RegisterSaver::all_registers));
@@ -2692,7 +2690,7 @@ void SharedRuntime::generate_deopt_blob() {
26922690 __ z_std (Z_FRET, offset_of (frame::z_abi_160_spill, spill[1 ]), Z_SP);
26932691
26942692 // let the unpacker layout information in the skeletal frames just allocated.
2695- __ get_PC (Z_RET);
2693+ __ get_PC (Z_RET, oop_map_offs - __ offset () );
26962694 __ set_last_Java_frame (/* sp*/ Z_SP, /* pc*/ Z_RET);
26972695 __ call_VM_leaf (CAST_FROM_FN_PTR (address, Deoptimization::unpack_frames),
26982696 Z_thread/* thread*/ , exec_mode_reg/* exec_mode*/ );
0 commit comments