< prev index next >

src/hotspot/share/jvmci/jvmciCodeInstaller.cpp

Print this page

        

*** 560,570 **** assert(_debug_recorder->pcs_length() >= 2, "must be at least 2"); metadata.set_pc_desc(_debug_recorder->pcs(), _debug_recorder->pcs_length()); metadata.set_scopes(_debug_recorder->stream()->buffer(), _debug_recorder->data_size()); metadata.set_exception_table(&_exception_handler_table); - metadata.set_implicit_exception_table(&_implicit_exception_table); RelocBuffer* reloc_buffer = metadata.get_reloc_buffer(); reloc_buffer->ensure_size(buffer.total_relocation_size()); size_t size = (size_t) buffer.copy_relocations_to(reloc_buffer->begin(), (CodeBuffer::csize_t) reloc_buffer->size(), true); --- 560,569 ----
*** 636,646 **** } JVMCIObject mirror = installed_code; nmethod* nm = NULL; result = runtime()->register_method(jvmci_env(), method, nm, entry_bci, &_offsets, _orig_pc_offset, &buffer, ! stack_slots, _debug_recorder->_oopmaps, &_exception_handler_table, &_implicit_exception_table, compiler, _debug_recorder, _dependencies, id, has_unsafe_access, _has_wide_vector, compiled_code, mirror, failed_speculations, speculations, speculations_len); cb = nm->as_codeblob_or_null(); if (nm != NULL && compile_state == NULL) { --- 635,645 ---- } JVMCIObject mirror = installed_code; nmethod* nm = NULL; result = runtime()->register_method(jvmci_env(), method, nm, entry_bci, &_offsets, _orig_pc_offset, &buffer, ! stack_slots, _debug_recorder->_oopmaps, &_exception_handler_table, compiler, _debug_recorder, _dependencies, id, has_unsafe_access, _has_wide_vector, compiled_code, mirror, failed_speculations, speculations, speculations_len); cb = nm->as_codeblob_or_null(); if (nm != NULL && compile_state == NULL) {
*** 869,882 **** TRACE_jvmci_4("safepoint at %i", pc_offset); site_Safepoint(buffer, pc_offset, site, JVMCI_CHECK_OK); if (_orig_pc_offset < 0) { JVMCI_ERROR_OK("method contains safepoint, but has no deopt rescue slot"); } - if (JVMCIENV->equals(reason, jvmci_env()->get_site_InfopointReason_IMPLICIT_EXCEPTION())) { - TRACE_jvmci_4("implicit exception at %i", pc_offset); - _implicit_exception_table.add_deoptimize(pc_offset); - } } else { TRACE_jvmci_4("infopoint at %i", pc_offset); site_Infopoint(buffer, pc_offset, site, JVMCI_CHECK_OK); } } else if (jvmci_env()->isa_site_DataPatch(site)) { --- 868,877 ----
*** 991,1005 **** for (int i = 0; i < JVMCIENV->get_length(virtualObjects); i++) { // HandleMark hm(THREAD); JVMCIObject value = JVMCIENV->get_object_at(virtualObjects, i); int id = jvmci_env()->get_VirtualObject_id(value); JVMCIObject type = jvmci_env()->get_VirtualObject_type(value); - bool is_auto_box = jvmci_env()->get_VirtualObject_isAutoBox(value); Klass* klass = jvmci_env()->asKlass(type); oop javaMirror = klass->java_mirror(); ! ScopeValue *klass_sv = new ConstantOopWriteValue(JNIHandles::make_local(Thread::current(), javaMirror)); ! ObjectValue* sv = is_auto_box ? new AutoBoxObjectValue(id, klass_sv) : new ObjectValue(id, klass_sv); if (id < 0 || id >= objects->length()) { JVMCI_ERROR_NULL("virtual object id %d out of bounds", id); } if (objects->at(id) != NULL) { JVMCI_ERROR_NULL("duplicate virtual object id %d", id); --- 986,998 ---- for (int i = 0; i < JVMCIENV->get_length(virtualObjects); i++) { // HandleMark hm(THREAD); JVMCIObject value = JVMCIENV->get_object_at(virtualObjects, i); int id = jvmci_env()->get_VirtualObject_id(value); JVMCIObject type = jvmci_env()->get_VirtualObject_type(value); Klass* klass = jvmci_env()->asKlass(type); oop javaMirror = klass->java_mirror(); ! ObjectValue* sv = new ObjectValue(id, new ConstantOopWriteValue(JNIHandles::make_local(Thread::current(), javaMirror))); if (id < 0 || id >= objects->length()) { JVMCI_ERROR_NULL("virtual object id %d out of bounds", id); } if (objects->at(id) != NULL) { JVMCI_ERROR_NULL("duplicate virtual object id %d", id);
< prev index next >