1 /*
2 * Copyright (c) 1997, 2025, Oracle and/or its affiliates. All rights reserved.
3 * Copyright (c) 2020, 2022, Huawei Technologies Co., Ltd. All rights reserved.
4 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 *
6 * This code is free software; you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License version 2 only, as
8 * published by the Free Software Foundation.
9 *
10 * This code is distributed in the hope that it will be useful, but WITHOUT
11 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
13 * version 2 for more details (a copy is included in the LICENSE file that
14 * accompanied this code).
15 *
16 * You should have received a copy of the GNU General Public License version
17 * 2 along with this work; if not, write to the Free Software Foundation,
18 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
19 *
20 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
21 * or visit www.oracle.com if you need additional information or have any
22 * questions.
208 void set_offset_fp(int value) { assert_on_heap(); _offset_fp = value; }
209
210 inline address* sender_pc_addr() const;
211
212 // expression stack tos if we are nested in a java call
213 intptr_t* interpreter_frame_last_sp() const;
214
215 void interpreter_frame_set_extended_sp(intptr_t* sp);
216
217 template <typename RegisterMapT>
218 static void update_map_with_saved_link(RegisterMapT* map, intptr_t** link_addr);
219
220 // deoptimization support
221 void interpreter_frame_set_last_sp(intptr_t* last_sp);
222
223 static jint interpreter_frame_expression_stack_direction() { return -1; }
224
225 // returns the sending frame, without applying any barriers
226 inline frame sender_raw(RegisterMap* map) const;
227
228 #endif // CPU_RISCV_FRAME_RISCV_HPP
|
1 /*
2 * Copyright (c) 1997, 2026, Oracle and/or its affiliates. All rights reserved.
3 * Copyright (c) 2020, 2022, Huawei Technologies Co., Ltd. All rights reserved.
4 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 *
6 * This code is free software; you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License version 2 only, as
8 * published by the Free Software Foundation.
9 *
10 * This code is distributed in the hope that it will be useful, but WITHOUT
11 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
13 * version 2 for more details (a copy is included in the LICENSE file that
14 * accompanied this code).
15 *
16 * You should have received a copy of the GNU General Public License version
17 * 2 along with this work; if not, write to the Free Software Foundation,
18 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
19 *
20 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
21 * or visit www.oracle.com if you need additional information or have any
22 * questions.
208 void set_offset_fp(int value) { assert_on_heap(); _offset_fp = value; }
209
210 inline address* sender_pc_addr() const;
211
212 // expression stack tos if we are nested in a java call
213 intptr_t* interpreter_frame_last_sp() const;
214
215 void interpreter_frame_set_extended_sp(intptr_t* sp);
216
217 template <typename RegisterMapT>
218 static void update_map_with_saved_link(RegisterMapT* map, intptr_t** link_addr);
219
220 // deoptimization support
221 void interpreter_frame_set_last_sp(intptr_t* last_sp);
222
223 static jint interpreter_frame_expression_stack_direction() { return -1; }
224
225 // returns the sending frame, without applying any barriers
226 inline frame sender_raw(RegisterMap* map) const;
227
228 intptr_t* repair_sender_sp(intptr_t* sender_sp, intptr_t** saved_fp_addr) const;
229 static intptr_t* repair_sender_sp(nmethod* nm, intptr_t* sp, intptr_t** saved_fp_addr);
230 bool was_augmented_on_entry(int& real_size) const;
231
232 #endif // CPU_RISCV_FRAME_RISCV_HPP
|