< prev index next >

src/hotspot/cpu/riscv/frame_riscv.hpp

Print this page

  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
< prev index next >