483 tty->print_cr("Resolved method:");
484 cg->method()->print(); tty->cr();
485 return false;
486 }
487 return true;
488 }
489 #endif // ASSERT
490
491 //------------------------------do_call----------------------------------------
492 // Handle your basic call. Inline if we can & want to, else just setup call.
493 void Parse::do_call() {
494 // It's likely we are going to add debug info soon.
495 // Also, if we inline a guy who eventually needs debug info for this JVMS,
496 // our contribution to it is cleaned up right here.
497 kill_dead_locals();
498
499 C->print_inlining_assert_ready();
500
501 // Set frequently used booleans
502 const bool is_virtual = bc() == Bytecodes::_invokevirtual;
503 const bool is_direct = bc() == Bytecodes::_invokedirect;
504 const bool is_virtual_or_interface = is_virtual || bc() == Bytecodes::_invokeinterface;
505 const bool has_receiver = Bytecodes::has_receiver(bc());
506
507 // Find target being called
508 bool will_link;
509 ciSignature* declared_signature = NULL;
510 ciMethod* orig_callee = iter().get_method(will_link, &declared_signature); // callee in the bytecode
511 ciInstanceKlass* holder_klass = orig_callee->holder();
512 ciKlass* holder = iter().get_declared_method_holder();
513 ciInstanceKlass* klass = ciEnv::get_instance_klass_for_declared_method_holder(holder);
514 assert(declared_signature != NULL, "cannot be null");
515
516 // Bump max node limit for JSR292 users
517 if (bc() == Bytecodes::_invokedynamic || orig_callee->is_method_handle_intrinsic()) {
518 C->set_max_node_limit(3*MaxNodeLimit);
519 }
520
521 // uncommon-trap when callee is unloaded, uninitialized or will not link
522 // bailout when too many arguments for register representation
523 if (!will_link || can_not_compile_call_site(orig_callee, klass)) {
|
483 tty->print_cr("Resolved method:");
484 cg->method()->print(); tty->cr();
485 return false;
486 }
487 return true;
488 }
489 #endif // ASSERT
490
491 //------------------------------do_call----------------------------------------
492 // Handle your basic call. Inline if we can & want to, else just setup call.
493 void Parse::do_call() {
494 // It's likely we are going to add debug info soon.
495 // Also, if we inline a guy who eventually needs debug info for this JVMS,
496 // our contribution to it is cleaned up right here.
497 kill_dead_locals();
498
499 C->print_inlining_assert_ready();
500
501 // Set frequently used booleans
502 const bool is_virtual = bc() == Bytecodes::_invokevirtual;
503 const bool is_virtual_or_interface = is_virtual || bc() == Bytecodes::_invokeinterface;
504 const bool has_receiver = Bytecodes::has_receiver(bc());
505
506 // Find target being called
507 bool will_link;
508 ciSignature* declared_signature = NULL;
509 ciMethod* orig_callee = iter().get_method(will_link, &declared_signature); // callee in the bytecode
510 ciInstanceKlass* holder_klass = orig_callee->holder();
511 ciKlass* holder = iter().get_declared_method_holder();
512 ciInstanceKlass* klass = ciEnv::get_instance_klass_for_declared_method_holder(holder);
513 assert(declared_signature != NULL, "cannot be null");
514
515 // Bump max node limit for JSR292 users
516 if (bc() == Bytecodes::_invokedynamic || orig_callee->is_method_handle_intrinsic()) {
517 C->set_max_node_limit(3*MaxNodeLimit);
518 }
519
520 // uncommon-trap when callee is unloaded, uninitialized or will not link
521 // bailout when too many arguments for register representation
522 if (!will_link || can_not_compile_call_site(orig_callee, klass)) {
|