< prev index next >

src/share/vm/jvmci/jvmciCodeInstaller.cpp

Print this page




1078         expressions->append(first);
1079       } else {
1080         MonitorValue *monitor = get_monitor_value(value, objects, CHECK);
1081         monitors->append(monitor);
1082       }
1083       if (second != NULL) {
1084         i++;
1085         if (i >= values->length() || values->obj_at(i) != Value::ILLEGAL()) {
1086           JVMCI_ERROR("double-slot value not followed by Value.ILLEGAL");
1087         }
1088       }
1089     }
1090 
1091     locals_token = _debug_recorder->create_scope_values(locals);
1092     expressions_token = _debug_recorder->create_scope_values(expressions);
1093     monitors_token = _debug_recorder->create_monitor_values(monitors);
1094 
1095     throw_exception = BytecodeFrame::rethrowException(frame) == JNI_TRUE;
1096   }
1097 
1098   _debug_recorder->describe_scope(pc_offset, method, NULL, bci, reexecute, throw_exception, false, return_oop,
1099                                   locals_token, expressions_token, monitors_token);
1100 }
1101 
1102 void CodeInstaller::site_Safepoint(CodeBuffer& buffer, jint pc_offset, Handle site, TRAPS) {
1103   Handle debug_info (THREAD, site_Infopoint::debugInfo(site));
1104   if (debug_info.is_null()) {
1105     JVMCI_ERROR("debug info expected at safepoint at %i", pc_offset);
1106   }
1107 
1108   // address instruction = _instructions->start() + pc_offset;
1109   // jint next_pc_offset = Assembler::locate_next_instruction(instruction) - _instructions->start();
1110   OopMap *map = create_oop_map(debug_info, CHECK);
1111   _debug_recorder->add_safepoint(pc_offset, map);
1112   record_scope(pc_offset, debug_info, CodeInstaller::FullFrame, CHECK);
1113   _debug_recorder->end_safepoint(pc_offset);
1114 }
1115 
1116 void CodeInstaller::site_Infopoint(CodeBuffer& buffer, jint pc_offset, Handle site, TRAPS) {
1117   Handle debug_info (THREAD, site_Infopoint::debugInfo(site));
1118   if (debug_info.is_null()) {




1078         expressions->append(first);
1079       } else {
1080         MonitorValue *monitor = get_monitor_value(value, objects, CHECK);
1081         monitors->append(monitor);
1082       }
1083       if (second != NULL) {
1084         i++;
1085         if (i >= values->length() || values->obj_at(i) != Value::ILLEGAL()) {
1086           JVMCI_ERROR("double-slot value not followed by Value.ILLEGAL");
1087         }
1088       }
1089     }
1090 
1091     locals_token = _debug_recorder->create_scope_values(locals);
1092     expressions_token = _debug_recorder->create_scope_values(expressions);
1093     monitors_token = _debug_recorder->create_monitor_values(monitors);
1094 
1095     throw_exception = BytecodeFrame::rethrowException(frame) == JNI_TRUE;
1096   }
1097 
1098   _debug_recorder->describe_scope(pc_offset, method, NULL, bci, reexecute, throw_exception, false, return_oop, false,
1099                                   locals_token, expressions_token, monitors_token);
1100 }
1101 
1102 void CodeInstaller::site_Safepoint(CodeBuffer& buffer, jint pc_offset, Handle site, TRAPS) {
1103   Handle debug_info (THREAD, site_Infopoint::debugInfo(site));
1104   if (debug_info.is_null()) {
1105     JVMCI_ERROR("debug info expected at safepoint at %i", pc_offset);
1106   }
1107 
1108   // address instruction = _instructions->start() + pc_offset;
1109   // jint next_pc_offset = Assembler::locate_next_instruction(instruction) - _instructions->start();
1110   OopMap *map = create_oop_map(debug_info, CHECK);
1111   _debug_recorder->add_safepoint(pc_offset, map);
1112   record_scope(pc_offset, debug_info, CodeInstaller::FullFrame, CHECK);
1113   _debug_recorder->end_safepoint(pc_offset);
1114 }
1115 
1116 void CodeInstaller::site_Infopoint(CodeBuffer& buffer, jint pc_offset, Handle site, TRAPS) {
1117   Handle debug_info (THREAD, site_Infopoint::debugInfo(site));
1118   if (debug_info.is_null()) {


< prev index next >