< prev index next >

src/share/vm/jvmci/jvmciRuntime.cpp

Print this page
rev 12310 : [mq]: gcinterface.patch

*** 164,177 **** // NOTE: Keep this code consistent with GraphKit::store_barrier. oop new_obj = thread->vm_result(); if (new_obj == NULL) return; ! assert(Universe::heap()->can_elide_tlab_store_barriers(), "compiler must check this first"); // GC may decide to give back a safer copy of new_obj. ! new_obj = Universe::heap()->new_store_pre_barrier(thread, new_obj); thread->set_vm_result(new_obj); } JRT_ENTRY(void, JVMCIRuntime::new_multi_array(JavaThread* thread, Klass* klass, int rank, jint* dims)) assert(klass->is_klass(), "not a class"); --- 164,177 ---- // NOTE: Keep this code consistent with GraphKit::store_barrier. oop new_obj = thread->vm_result(); if (new_obj == NULL) return; ! assert(GC::gc()->heap()->can_elide_tlab_store_barriers(), "compiler must check this first"); // GC may decide to give back a safer copy of new_obj. ! new_obj = GC::gc()->heap()->new_store_pre_barrier(thread, new_obj); thread->set_vm_result(new_obj); } JRT_ENTRY(void, JVMCIRuntime::new_multi_array(JavaThread* thread, Klass* klass, int rank, jint* dims)) assert(klass->is_klass(), "not a class");
*** 481,496 **** thread->dirty_card_queue().enqueue(card_addr); JRT_END JRT_LEAF(jboolean, JVMCIRuntime::validate_object(JavaThread* thread, oopDesc* parent, oopDesc* child)) bool ret = true; ! if(!Universe::heap()->is_in_closed_subset(parent)) { tty->print_cr("Parent Object " INTPTR_FORMAT " not in heap", p2i(parent)); parent->print(); ret=false; } ! if(!Universe::heap()->is_in_closed_subset(child)) { tty->print_cr("Child Object " INTPTR_FORMAT " not in heap", p2i(child)); child->print(); ret=false; } return (jint)ret; --- 481,496 ---- thread->dirty_card_queue().enqueue(card_addr); JRT_END JRT_LEAF(jboolean, JVMCIRuntime::validate_object(JavaThread* thread, oopDesc* parent, oopDesc* child)) bool ret = true; ! if(!GC::gc()->heap()->is_in_closed_subset(parent)) { tty->print_cr("Parent Object " INTPTR_FORMAT " not in heap", p2i(parent)); parent->print(); ret=false; } ! if(!GC::gc()->heap()->is_in_closed_subset(child)) { tty->print_cr("Child Object " INTPTR_FORMAT " not in heap", p2i(child)); child->print(); ret=false; } return (jint)ret;
*** 540,550 **** return; } cb->print_value_on(tty); return; } ! if (Universe::heap()->is_in(p)) { oop obj = oop(p); obj->print_value_on(tty); return; } tty->print(INTPTR_FORMAT " [long: " JLONG_FORMAT ", double %lf, char %c]",p2i((void *)v), (jlong)v, (jdouble)v, (char)v); --- 540,550 ---- return; } cb->print_value_on(tty); return; } ! if (GC::gc()->heap()->is_in(p)) { oop obj = oop(p); obj->print_value_on(tty); return; } tty->print(INTPTR_FORMAT " [long: " JLONG_FORMAT ", double %lf, char %c]",p2i((void *)v), (jlong)v, (jdouble)v, (char)v);
*** 792,802 **** THROW_MSG(vmSymbols::java_lang_InternalError(), "JVMCI is not enabled"); } #ifdef _LP64 #ifndef SPARC ! uintptr_t heap_end = (uintptr_t) Universe::heap()->reserved_region().end(); uintptr_t allocation_end = heap_end + ((uintptr_t)16) * 1024 * 1024 * 1024; guarantee(heap_end < allocation_end, "heap end too close to end of address space (might lead to erroneous TLAB allocations)"); #endif // !SPARC #else fatal("check TLAB allocation code for address space conflicts"); --- 792,802 ---- THROW_MSG(vmSymbols::java_lang_InternalError(), "JVMCI is not enabled"); } #ifdef _LP64 #ifndef SPARC ! uintptr_t heap_end = (uintptr_t) GC::gc()->heap()->reserved_region().end(); uintptr_t allocation_end = heap_end + ((uintptr_t)16) * 1024 * 1024 * 1024; guarantee(heap_end < allocation_end, "heap end too close to end of address space (might lead to erroneous TLAB allocations)"); #endif // !SPARC #else fatal("check TLAB allocation code for address space conflicts");
< prev index next >