1.1 --- a/src/share/vm/c1/c1_IR.cpp Fri Jul 31 12:04:07 2009 -0700 1.2 +++ b/src/share/vm/c1/c1_IR.cpp Fri Jul 31 17:12:33 2009 -0700 1.3 @@ -208,6 +208,15 @@ 1.4 return scope->caller_bci(); 1.5 } 1.6 1.7 +bool IRScopeDebugInfo::should_reexecute() { 1.8 + ciMethod* cur_method = scope()->method(); 1.9 + int cur_bci = bci(); 1.10 + if (cur_method != NULL && cur_bci != SynchronizationEntryBCI) { 1.11 + Bytecodes::Code code = cur_method->java_code_at_bci(cur_bci); 1.12 + return Interpreter::bytecode_should_reexecute(code); 1.13 + } else 1.14 + return false; 1.15 +} 1.16 1.17 1.18 // Implementation of CodeEmitInfo 1.19 @@ -253,7 +262,7 @@ 1.20 void CodeEmitInfo::record_debug_info(DebugInformationRecorder* recorder, int pc_offset) { 1.21 // record the safepoint before recording the debug info for enclosing scopes 1.22 recorder->add_safepoint(pc_offset, _oop_map->deep_copy()); 1.23 - _scope_debug_info->record_debug_info(recorder, pc_offset); 1.24 + _scope_debug_info->record_debug_info(recorder, pc_offset, true/*topmost*/); 1.25 recorder->end_safepoint(pc_offset); 1.26 } 1.27