1303 }
1304 }
1305
1306 void CodeInstaller::site_Mark(CodeBuffer& buffer, jint pc_offset, Handle site, TRAPS) {
1307 Handle id_obj (THREAD, site_Mark::id(site));
1308
1309 if (id_obj.not_null()) {
1310 if (!java_lang_boxing_object::is_instance(id_obj(), T_INT)) {
1311 JVMCI_ERROR("expected Integer id, got %s", id_obj->klass()->signature_name());
1312 }
1313 jint id = id_obj->int_field(java_lang_boxing_object::value_offset_in_bytes(T_INT));
1314
1315 address pc = _instructions->start() + pc_offset;
1316
1317 switch (id) {
1318 case UNVERIFIED_ENTRY:
1319 _offsets.set_value(CodeOffsets::Entry, pc_offset);
1320 break;
1321 case VERIFIED_ENTRY:
1322 _offsets.set_value(CodeOffsets::Verified_Entry, pc_offset);
1323 break;
1324 case OSR_ENTRY:
1325 _offsets.set_value(CodeOffsets::OSR_Entry, pc_offset);
1326 break;
1327 case EXCEPTION_HANDLER_ENTRY:
1328 _offsets.set_value(CodeOffsets::Exceptions, pc_offset);
1329 break;
1330 case DEOPT_HANDLER_ENTRY:
1331 _offsets.set_value(CodeOffsets::Deopt, pc_offset);
1332 break;
1333 case INVOKEVIRTUAL:
1334 case INVOKEINTERFACE:
1335 case INLINE_INVOKE:
1336 case INVOKESTATIC:
1337 case INVOKESPECIAL:
1338 _next_call_type = (MarkId) id;
1339 _invoke_mark_pc = pc;
1340 break;
1341 case POLL_NEAR:
1342 case POLL_FAR:
|
1303 }
1304 }
1305
1306 void CodeInstaller::site_Mark(CodeBuffer& buffer, jint pc_offset, Handle site, TRAPS) {
1307 Handle id_obj (THREAD, site_Mark::id(site));
1308
1309 if (id_obj.not_null()) {
1310 if (!java_lang_boxing_object::is_instance(id_obj(), T_INT)) {
1311 JVMCI_ERROR("expected Integer id, got %s", id_obj->klass()->signature_name());
1312 }
1313 jint id = id_obj->int_field(java_lang_boxing_object::value_offset_in_bytes(T_INT));
1314
1315 address pc = _instructions->start() + pc_offset;
1316
1317 switch (id) {
1318 case UNVERIFIED_ENTRY:
1319 _offsets.set_value(CodeOffsets::Entry, pc_offset);
1320 break;
1321 case VERIFIED_ENTRY:
1322 _offsets.set_value(CodeOffsets::Verified_Entry, pc_offset);
1323 _offsets.set_value(CodeOffsets::Verified_Value_Entry, pc_offset);
1324 break;
1325 case OSR_ENTRY:
1326 _offsets.set_value(CodeOffsets::OSR_Entry, pc_offset);
1327 break;
1328 case EXCEPTION_HANDLER_ENTRY:
1329 _offsets.set_value(CodeOffsets::Exceptions, pc_offset);
1330 break;
1331 case DEOPT_HANDLER_ENTRY:
1332 _offsets.set_value(CodeOffsets::Deopt, pc_offset);
1333 break;
1334 case INVOKEVIRTUAL:
1335 case INVOKEINTERFACE:
1336 case INLINE_INVOKE:
1337 case INVOKESTATIC:
1338 case INVOKESPECIAL:
1339 _next_call_type = (MarkId) id;
1340 _invoke_mark_pc = pc;
1341 break;
1342 case POLL_NEAR:
1343 case POLL_FAR:
|