< prev index next >

src/hotspot/share/c1/c1_IR.hpp

Print this page

        

@@ -230,24 +230,11 @@
   IRScopeDebugInfo*             caller()      { return _caller;      }
 
   //Whether we should reexecute this bytecode for deopt
   bool should_reexecute();
 
-  void record_debug_info(DebugInformationRecorder* recorder, int pc_offset, bool topmost, bool is_method_handle_invoke = false) {
-    if (caller() != NULL) {
-      // Order is significant:  Must record caller first.
-      caller()->record_debug_info(recorder, pc_offset, false/*topmost*/);
-    }
-    DebugToken* locvals = recorder->create_scope_values(locals());
-    DebugToken* expvals = recorder->create_scope_values(expressions());
-    DebugToken* monvals = recorder->create_monitor_values(monitors());
-    // reexecute allowed only for the topmost frame
-    bool reexecute = topmost ? should_reexecute() : false;
-    bool return_oop = false; // This flag will be ignored since it used only for C2 with escape analysis.
-    bool rethrow_exception = false;
-    recorder->describe_scope(pc_offset, methodHandle(), scope()->method(), bci(), reexecute, rethrow_exception, is_method_handle_invoke, return_oop, locvals, expvals, monvals);
-  }
+  void record_debug_info(DebugInformationRecorder* recorder, int pc_offset, bool topmost, bool is_method_handle_invoke = false, bool maybe_return_as_fields = false);
 };
 
 
 class CodeEmitInfo: public CompilationResourceObj {
   friend class LinearScan;

@@ -278,11 +265,11 @@
   XHandlers* exception_handlers() const          { return _exception_handlers; }
   ValueStack* stack() const                      { return _stack; }
   bool deoptimize_on_exception() const           { return _deoptimize_on_exception; }
 
   void add_register_oop(LIR_Opr opr);
-  void record_debug_info(DebugInformationRecorder* recorder, int pc_offset);
+  void record_debug_info(DebugInformationRecorder* recorder, int pc_offset, bool maybe_return_as_fields = false);
 
   bool     is_method_handle_invoke() const { return _is_method_handle_invoke;     }
   void set_is_method_handle_invoke(bool x) {        _is_method_handle_invoke = x; }
 
   int interpreter_frame_size() const;
< prev index next >