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()) {
|