src/share/vm/c1/c1_IR.hpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File
*** old/src/share/vm/c1/c1_IR.hpp	Thu Jul 16 16:02:24 2009
--- new/src/share/vm/c1/c1_IR.hpp	Thu Jul 16 16:02:24 2009

*** 237,255 **** --- 237,260 ---- GrowableArray<ScopeValue*>* locals() { return _locals; } GrowableArray<ScopeValue*>* expressions() { return _expressions; } GrowableArray<MonitorValue*>* monitors() { return _monitors; } IRScopeDebugInfo* caller() { return _caller; } void record_debug_info(DebugInformationRecorder* recorder, int pc_offset) { + //Whether we should reexecute this bytecode for deopt + bool should_reexecute(); + + void record_debug_info(DebugInformationRecorder* recorder, int pc_offset, bool topmost) { 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()); recorder->describe_scope(pc_offset, scope()->method(), bci(), locvals, expvals, monvals); + // reexecute allowed only for the topmost frame + bool reexecute = topmost ? should_reexecute() : false; + recorder->describe_scope(pc_offset, scope()->method(), bci(), reexecute, locvals, expvals, monvals); } }; class CodeEmitInfo: public CompilationResourceObj {

src/share/vm/c1/c1_IR.hpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File