comparison src/share/vm/code/nmethod.cpp @ 17790:5da8bb64b370

Merge
author kvn
date Mon, 23 Dec 2013 10:26:08 -0800
parents 4cdf4f71177d df832bd8edb9
children 62c54fcc0a35
comparison
equal deleted inserted replaced
14447:2da20f966936 17790:5da8bb64b370
457 return NULL; 457 return NULL;
458 } 458 }
459 459
460 // Fill in default values for various flag fields 460 // Fill in default values for various flag fields
461 void nmethod::init_defaults() { 461 void nmethod::init_defaults() {
462 _state = alive; 462 _state = in_use;
463 _marked_for_reclamation = 0; 463 _marked_for_reclamation = 0;
464 _has_flushed_dependencies = 0; 464 _has_flushed_dependencies = 0;
465 _has_unsafe_access = 0; 465 _has_unsafe_access = 0;
466 _has_method_handle_invokes = 0; 466 _has_method_handle_invokes = 0;
467 _lazy_critical_native = 0; 467 _lazy_critical_native = 0;
1658 // The only exception is compiledICHolder oops which may 1658 // The only exception is compiledICHolder oops which may
1659 // yet be marked below. (We check this further below). 1659 // yet be marked below. (We check this further below).
1660 CompiledICHolder* cichk_oop = ic->cached_icholder(); 1660 CompiledICHolder* cichk_oop = ic->cached_icholder();
1661 if (cichk_oop->holder_method()->method_holder()->is_loader_alive(is_alive) && 1661 if (cichk_oop->holder_method()->method_holder()->is_loader_alive(is_alive) &&
1662 cichk_oop->holder_klass()->is_loader_alive(is_alive)) { 1662 cichk_oop->holder_klass()->is_loader_alive(is_alive)) {
1663 continue; 1663 continue;
1664 } 1664 }
1665 } else { 1665 } else {
1666 Metadata* ic_oop = ic->cached_metadata(); 1666 Metadata* ic_oop = ic->cached_metadata();
1667 if (ic_oop != NULL) { 1667 if (ic_oop != NULL) {
1668 if (ic_oop->is_klass()) { 1668 if (ic_oop->is_klass()) {
1669 if (((Klass*)ic_oop)->is_loader_alive(is_alive)) { 1669 if (((Klass*)ic_oop)->is_loader_alive(is_alive)) {
1675 } 1675 }
1676 } else { 1676 } else {
1677 ShouldNotReachHere(); 1677 ShouldNotReachHere();
1678 } 1678 }
1679 } 1679 }
1680 } 1680 }
1681 ic->set_to_clean(); 1681 ic->set_to_clean();
1682 } 1682 }
1683 } 1683 }
1684 } 1684 }
1685 1685
1686 // Compiled code 1686 // Compiled code
2391 } 2391 }
2392 2392
2393 2393
2394 void nmethod::verify_interrupt_point(address call_site) { 2394 void nmethod::verify_interrupt_point(address call_site) {
2395 // Verify IC only when nmethod installation is finished. 2395 // Verify IC only when nmethod installation is finished.
2396 bool is_installed = (method()->code() == this) // nmethod is in state 'alive' and installed 2396 bool is_installed = (method()->code() == this) // nmethod is in state 'in_use' and installed
2397 || !this->is_in_use(); // nmethod is installed, but not in 'alive' state 2397 || !this->is_in_use(); // nmethod is installed, but not in 'in_use' state
2398 if (is_installed) { 2398 if (is_installed) {
2399 Thread *cur = Thread::current(); 2399 Thread *cur = Thread::current();
2400 if (CompiledIC_lock->owner() == cur || 2400 if (CompiledIC_lock->owner() == cur ||
2401 ((cur->is_VM_thread() || cur->is_ConcurrentGC_thread()) && 2401 ((cur->is_VM_thread() || cur->is_ConcurrentGC_thread()) &&
2402 SafepointSynchronize::is_at_safepoint())) { 2402 SafepointSynchronize::is_at_safepoint())) {