Mercurial > hg > graal-jvmci-8
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())) { |