comparison src/share/vm/code/nmethod.cpp @ 13451:02f27ecb4f3a

Merge with http://hg.openjdk.java.net/hsx/hsx25/hotspot/
author Doug Simon <doug.simon@oracle.com>
date Wed, 18 Dec 2013 00:00:24 +0100
parents 01080e31692d df832bd8edb9
children 5a9afbf72714
comparison
equal deleted inserted replaced
13371:4db09b7304da 13451:02f27ecb4f3a
502 return NULL; 502 return NULL;
503 } 503 }
504 504
505 // Fill in default values for various flag fields 505 // Fill in default values for various flag fields
506 void nmethod::init_defaults() { 506 void nmethod::init_defaults() {
507 _state = alive; 507 _state = in_use;
508 _marked_for_reclamation = 0; 508 _marked_for_reclamation = 0;
509 _has_flushed_dependencies = 0; 509 _has_flushed_dependencies = 0;
510 _has_unsafe_access = 0; 510 _has_unsafe_access = 0;
511 _has_method_handle_invokes = 0; 511 _has_method_handle_invokes = 0;
512 _lazy_critical_native = 0; 512 _lazy_critical_native = 0;
1788 // The only exception is compiledICHolder oops which may 1788 // The only exception is compiledICHolder oops which may
1789 // yet be marked below. (We check this further below). 1789 // yet be marked below. (We check this further below).
1790 CompiledICHolder* cichk_oop = ic->cached_icholder(); 1790 CompiledICHolder* cichk_oop = ic->cached_icholder();
1791 if (cichk_oop->holder_method()->method_holder()->is_loader_alive(is_alive) && 1791 if (cichk_oop->holder_method()->method_holder()->is_loader_alive(is_alive) &&
1792 cichk_oop->holder_klass()->is_loader_alive(is_alive)) { 1792 cichk_oop->holder_klass()->is_loader_alive(is_alive)) {
1793 continue; 1793 continue;
1794 } 1794 }
1795 } else { 1795 } else {
1796 Metadata* ic_oop = ic->cached_metadata(); 1796 Metadata* ic_oop = ic->cached_metadata();
1797 if (ic_oop != NULL) { 1797 if (ic_oop != NULL) {
1798 if (ic_oop->is_klass()) { 1798 if (ic_oop->is_klass()) {
1799 if (((Klass*)ic_oop)->is_loader_alive(is_alive)) { 1799 if (((Klass*)ic_oop)->is_loader_alive(is_alive)) {
1805 } 1805 }
1806 } else { 1806 } else {
1807 ShouldNotReachHere(); 1807 ShouldNotReachHere();
1808 } 1808 }
1809 } 1809 }
1810 } 1810 }
1811 ic->set_to_clean(); 1811 ic->set_to_clean();
1812 } 1812 }
1813 } 1813 }
1814 } 1814 }
1815 1815
1816 // Compiled code 1816 // Compiled code
2530 } 2530 }
2531 2531
2532 2532
2533 void nmethod::verify_interrupt_point(address call_site) { 2533 void nmethod::verify_interrupt_point(address call_site) {
2534 // Verify IC only when nmethod installation is finished. 2534 // Verify IC only when nmethod installation is finished.
2535 bool is_installed = (method()->code() == this) // nmethod is in state 'alive' and installed 2535 bool is_installed = (method()->code() == this) // nmethod is in state 'in_use' and installed
2536 || !this->is_in_use(); // nmethod is installed, but not in 'alive' state 2536 || !this->is_in_use(); // nmethod is installed, but not in 'in_use' state
2537 if (is_installed) { 2537 if (is_installed) {
2538 Thread *cur = Thread::current(); 2538 Thread *cur = Thread::current();
2539 if (CompiledIC_lock->owner() == cur || 2539 if (CompiledIC_lock->owner() == cur ||
2540 ((cur->is_VM_thread() || cur->is_ConcurrentGC_thread()) && 2540 ((cur->is_VM_thread() || cur->is_ConcurrentGC_thread()) &&
2541 SafepointSynchronize::is_at_safepoint())) { 2541 SafepointSynchronize::is_at_safepoint())) {