580 } |
580 } |
581 } |
581 } |
582 |
582 |
583 |
583 |
584 bool methodOopDesc::has_native_function() const { |
584 bool methodOopDesc::has_native_function() const { |
585 assert(!is_method_handle_intrinsic(), ""); |
585 if (is_method_handle_intrinsic()) |
|
586 return false; // special-cased in SharedRuntime::generate_native_wrapper |
586 address func = native_function(); |
587 address func = native_function(); |
587 return (func != NULL && func != SharedRuntime::native_method_throw_unsatisfied_link_error_entry()); |
588 return (func != NULL && func != SharedRuntime::native_method_throw_unsatisfied_link_error_entry()); |
588 } |
589 } |
589 |
590 |
590 |
591 |
609 |
610 |
610 |
611 |
611 bool methodOopDesc::is_not_compilable(int comp_level) const { |
612 bool methodOopDesc::is_not_compilable(int comp_level) const { |
612 if (number_of_breakpoints() > 0) { |
613 if (number_of_breakpoints() > 0) { |
613 return true; |
614 return true; |
|
615 } |
|
616 if (is_method_handle_intrinsic()) { |
|
617 return !is_synthetic(); // the generated adapters must be compiled |
614 } |
618 } |
615 if (comp_level == CompLevel_any) { |
619 if (comp_level == CompLevel_any) { |
616 return is_not_c1_compilable() || is_not_c2_compilable(); |
620 return is_not_c1_compilable() || is_not_c2_compilable(); |
617 } |
621 } |
618 if (is_c1_compile(comp_level)) { |
622 if (is_c1_compile(comp_level)) { |