@@ -232,16 +232,15 @@ class IRScopeDebugInfo: public CompilationResourceObj {
232232 // Whether we should reexecute this bytecode for deopt
233233 bool should_reexecute ();
234234
235- void record_debug_info (DebugInformationRecorder* recorder, int pc_offset, bool topmost , bool is_method_handle_invoke = false ) {
235+ void record_debug_info (DebugInformationRecorder* recorder, int pc_offset, bool reexecute , bool is_method_handle_invoke = false ) {
236236 if (caller () != NULL ) {
237237 // Order is significant: Must record caller first.
238- caller ()->record_debug_info (recorder, pc_offset, false /* topmost */ );
238+ caller ()->record_debug_info (recorder, pc_offset, false /* reexecute */ );
239239 }
240240 DebugToken* locvals = recorder->create_scope_values (locals ());
241241 DebugToken* expvals = recorder->create_scope_values (expressions ());
242242 DebugToken* monvals = recorder->create_monitor_values (monitors ());
243243 // reexecute allowed only for the topmost frame
244- bool reexecute = topmost ? should_reexecute () : false ;
245244 bool return_oop = false ; // This flag will be ignored since it used only for C2 with escape analysis.
246245 bool rethrow_exception = false ;
247246 bool is_opt_native = false ;
@@ -264,6 +263,7 @@ class CodeEmitInfo: public CompilationResourceObj {
264263 ValueStack* _stack; // used by deoptimization (contains also monitors
265264 bool _is_method_handle_invoke; // true if the associated call site is a MethodHandle call site.
266265 bool _deoptimize_on_exception;
266+ bool _force_reexecute; // force the reexecute flag on, used for patching stub
267267
268268 FrameMap* frame_map () const { return scope ()->compilation ()->frame_map (); }
269269 Compilation* compilation () const { return scope ()->compilation (); }
@@ -290,7 +290,11 @@ class CodeEmitInfo: public CompilationResourceObj {
290290 bool is_method_handle_invoke () const { return _is_method_handle_invoke; }
291291 void set_is_method_handle_invoke (bool x) { _is_method_handle_invoke = x; }
292292
293+ bool force_reexecute () const { return _force_reexecute; }
294+ void set_force_reexecute () { _force_reexecute = true ; }
295+
293296 int interpreter_frame_size () const ;
297+
294298};
295299
296300
0 commit comments