724 725 void CompiledIC::print_compiled_ic() { 726 tty->print("Inline cache at " INTPTR_FORMAT ", calling %s " INTPTR_FORMAT " cached_value " INTPTR_FORMAT, 727 p2i(instruction_address()), is_call_to_interpreted() ? "interpreted " : "", p2i(ic_destination()), p2i(is_optimized() ? NULL : cached_value())); 728 } 729 730 void CompiledDirectStaticCall::print() { 731 tty->print("static call at " INTPTR_FORMAT " -> ", p2i(instruction_address())); 732 if (is_clean()) { 733 tty->print("clean"); 734 } else if (is_call_to_compiled()) { 735 tty->print("compiled"); 736 } else if (is_call_to_far()) { 737 tty->print("far"); 738 } else if (is_call_to_interpreted()) { 739 tty->print("interpreted"); 740 } 741 tty->cr(); 742 } 743 744 #endif // !PRODUCT | 724 725 void CompiledIC::print_compiled_ic() { 726 tty->print("Inline cache at " INTPTR_FORMAT ", calling %s " INTPTR_FORMAT " cached_value " INTPTR_FORMAT, 727 p2i(instruction_address()), is_call_to_interpreted() ? "interpreted " : "", p2i(ic_destination()), p2i(is_optimized() ? NULL : cached_value())); 728 } 729 730 void CompiledDirectStaticCall::print() { 731 tty->print("static call at " INTPTR_FORMAT " -> ", p2i(instruction_address())); 732 if (is_clean()) { 733 tty->print("clean"); 734 } else if (is_call_to_compiled()) { 735 tty->print("compiled"); 736 } else if (is_call_to_far()) { 737 tty->print("far"); 738 } else if (is_call_to_interpreted()) { 739 tty->print("interpreted"); 740 } 741 tty->cr(); 742 } 743 744 void CompiledDirectStaticCall::verify_mt_safe(const methodHandle& callee, address entry, 745 NativeMovConstReg* method_holder, 746 NativeJump* jump) { 747 // A generated lambda form might be deleted from the Lambdaform 748 // cache in MethodTypeForm. If a jit compiled lambdaform method 749 // becomes not entrant and the cache access returns null, the new 750 // resolve will lead to a new generated LambdaForm. 751 Method* old_method = reinterpret_cast<Method*>(method_holder->data()); 752 assert(old_method == NULL || old_method == callee() || 753 callee->is_compiled_lambda_form() || 754 !old_method->method_holder()->is_loader_alive() || 755 old_method->is_old(), // may be race patching deoptimized nmethod due to redefinition. 756 "a) MT-unsafe modification of inline cache"); 757 758 address destination = jump->jump_destination(); 759 assert(destination == (address)-1 || destination == entry, 760 "b) MT-unsafe modification of inline cache"); 761 } 762 #endif // !PRODUCT |