equal
deleted
inserted
replaced
633 bool has_receiver) { |
633 bool has_receiver) { |
634 bool will_link; |
634 bool will_link; |
635 ciMethod* method = str->get_method(will_link); |
635 ciMethod* method = str->get_method(will_link); |
636 if (!will_link) { |
636 if (!will_link) { |
637 // We weren't able to find the method. |
637 // We weren't able to find the method. |
638 ciKlass* unloaded_holder = method->holder(); |
638 if (str->cur_bc() == Bytecodes::_invokedynamic) { |
639 trap(str, unloaded_holder, str->get_method_holder_index()); |
639 trap(str, NULL, |
|
640 Deoptimization::make_trap_request |
|
641 (Deoptimization::Reason_uninitialized, |
|
642 Deoptimization::Action_reinterpret)); |
|
643 } else { |
|
644 ciKlass* unloaded_holder = method->holder(); |
|
645 trap(str, unloaded_holder, str->get_method_holder_index()); |
|
646 } |
640 } else { |
647 } else { |
641 ciSignature* signature = method->signature(); |
648 ciSignature* signature = method->signature(); |
642 ciSignatureStream sigstr(signature); |
649 ciSignatureStream sigstr(signature); |
643 int arg_size = signature->size(); |
650 int arg_size = signature->size(); |
644 int stack_base = stack_size() - arg_size; |
651 int stack_base = stack_size() - arg_size; |
1290 break; |
1297 break; |
1291 } |
1298 } |
1292 case Bytecodes::_invokeinterface: do_invoke(str, true); break; |
1299 case Bytecodes::_invokeinterface: do_invoke(str, true); break; |
1293 case Bytecodes::_invokespecial: do_invoke(str, true); break; |
1300 case Bytecodes::_invokespecial: do_invoke(str, true); break; |
1294 case Bytecodes::_invokestatic: do_invoke(str, false); break; |
1301 case Bytecodes::_invokestatic: do_invoke(str, false); break; |
1295 |
|
1296 case Bytecodes::_invokevirtual: do_invoke(str, true); break; |
1302 case Bytecodes::_invokevirtual: do_invoke(str, true); break; |
|
1303 case Bytecodes::_invokedynamic: do_invoke(str, false); break; |
1297 |
1304 |
1298 case Bytecodes::_istore: store_local_int(str->get_index()); break; |
1305 case Bytecodes::_istore: store_local_int(str->get_index()); break; |
1299 case Bytecodes::_istore_0: store_local_int(0); break; |
1306 case Bytecodes::_istore_0: store_local_int(0); break; |
1300 case Bytecodes::_istore_1: store_local_int(1); break; |
1307 case Bytecodes::_istore_1: store_local_int(1); break; |
1301 case Bytecodes::_istore_2: store_local_int(2); break; |
1308 case Bytecodes::_istore_2: store_local_int(2); break; |