Mercurial > hg > graal-jvmci-8
diff src/share/vm/c1x/c1x_CodeInstaller.cpp @ 1450:565f45cebac2
Merge
author | Thomas Wuerthinger <wuerthinger@ssw.jku.at> |
---|---|
date | Thu, 11 Nov 2010 14:16:50 +0100 |
parents | 8cfe3537a0d3 1afbc44ee576 |
children | d603bdbec024 |
line wrap: on
line diff
--- a/src/share/vm/c1x/c1x_CodeInstaller.cpp Thu Nov 11 14:09:37 2010 +0100 +++ b/src/share/vm/c1x/c1x_CodeInstaller.cpp Thu Nov 11 14:16:50 2010 +0100 @@ -304,18 +304,14 @@ } -void CodeInstaller::record_scope(jint pc_offset, oop code_pos, oop frame) { +void CodeInstaller::record_scope(jint pc_offset, oop code_pos) { oop caller_pos = CiCodePos::caller(code_pos); if (caller_pos != NULL) { - oop caller_frame = frame == NULL ? NULL : CiDebugInfo_Frame::caller(frame); - record_scope(pc_offset, caller_pos, caller_frame); - } else { - assert(frame == NULL || CiDebugInfo_Frame::caller(frame) == NULL, "unexpected layout - mismatching nesting of Frame and CiCodePos"); + record_scope(pc_offset, caller_pos); } - - if (frame != NULL) { - assert(CiCodePos::bci(code_pos) == CiCodePos::bci(CiDebugInfo_Frame::codePos(frame)), "unexpected CiCodePos layout"); - assert(CiCodePos::method(code_pos) == CiCodePos::method(CiDebugInfo_Frame::codePos(frame)), "unexpected CiCodePos layout"); + oop frame = NULL; + if (code_pos->klass()->klass_part()->name() == vmSymbols::com_sun_cri_ci_CiDebugInfo_Frame()) { + frame = code_pos; } oop hotspot_method = CiCodePos::method(code_pos); @@ -377,8 +373,7 @@ _debug_recorder->add_safepoint(pc_offset, create_oop_map(_frame_size, _parameter_count, debug_info)); oop code_pos = CiDebugInfo::codePos(debug_info); - oop frame = CiDebugInfo::frame(debug_info); - record_scope(pc_offset, code_pos, frame); + record_scope(pc_offset, code_pos); _debug_recorder->end_safepoint(pc_offset); } @@ -401,8 +396,7 @@ if (debug_info != NULL) { _debug_recorder->add_safepoint(next_pc_offset, create_oop_map(_frame_size, _parameter_count, debug_info)); oop code_pos = CiDebugInfo::codePos(debug_info); - oop frame = CiDebugInfo::frame(debug_info); - record_scope(next_pc_offset, code_pos, frame); + record_scope(next_pc_offset, code_pos); } if (runtime_call != NULL) {