equal
deleted
inserted
replaced
531 bool CompiledIC::is_icholder_entry(address entry) { |
531 bool CompiledIC::is_icholder_entry(address entry) { |
532 CodeBlob* cb = CodeCache::find_blob_unsafe(entry); |
532 CodeBlob* cb = CodeCache::find_blob_unsafe(entry); |
533 return (cb != NULL && cb->is_adapter_blob()); |
533 return (cb != NULL && cb->is_adapter_blob()); |
534 } |
534 } |
535 |
535 |
|
536 // Release the CompiledICHolder* associated with this call site is there is one. |
|
537 void CompiledIC::cleanup_call_site(virtual_call_Relocation* call_site) { |
|
538 // This call site might have become stale so inspect it carefully. |
|
539 NativeCall* call = nativeCall_at(call_site->addr()); |
|
540 if (is_icholder_entry(call->destination())) { |
|
541 NativeMovConstReg* value = nativeMovConstReg_at(call_site->cached_value()); |
|
542 InlineCacheBuffer::queue_for_release((CompiledICHolder*)value->data()); |
|
543 } |
|
544 } |
|
545 |
|
546 bool CompiledIC::is_icholder_call_site(virtual_call_Relocation* call_site) { |
|
547 // This call site might have become stale so inspect it carefully. |
|
548 NativeCall* call = nativeCall_at(call_site->addr()); |
|
549 return is_icholder_entry(call->destination()); |
|
550 } |
|
551 |
536 // ---------------------------------------------------------------------------- |
552 // ---------------------------------------------------------------------------- |
537 |
553 |
538 void CompiledStaticCall::set_to_clean() { |
554 void CompiledStaticCall::set_to_clean() { |
539 assert (CompiledIC_lock->is_locked() || SafepointSynchronize::is_at_safepoint(), "mt unsafe call"); |
555 assert (CompiledIC_lock->is_locked() || SafepointSynchronize::is_at_safepoint(), "mt unsafe call"); |
540 // Reset call site |
556 // Reset call site |