698 // LIR_OpJavaCall
699 case lir_static_call:
700 case lir_optvirtual_call:
701 case lir_icvirtual_call:
702 case lir_virtual_call:
703 case lir_dynamic_call: {
704 LIR_OpJavaCall* opJavaCall = op->as_OpJavaCall();
705 assert(opJavaCall != NULL, "must be");
706
707 if (opJavaCall->_receiver->is_valid()) do_input(opJavaCall->_receiver);
708
709 // only visit register parameters
710 int n = opJavaCall->_arguments->length();
711 for (int i = 0; i < n; i++) {
712 if (!opJavaCall->_arguments->at(i)->is_pointer()) {
713 do_input(*opJavaCall->_arguments->adr_at(i));
714 }
715 }
716
717 if (opJavaCall->_info) do_info(opJavaCall->_info);
718 if (opJavaCall->is_method_handle_invoke()) do_temp(FrameMap::method_handle_invoke_SP_save_opr());
719 do_call();
720 if (opJavaCall->_result->is_valid()) do_output(opJavaCall->_result);
721
722 break;
723 }
724
725
726 // LIR_OpRTCall
727 case lir_rtcall: {
728 assert(op->as_OpRTCall() != NULL, "must be");
729 LIR_OpRTCall* opRTCall = (LIR_OpRTCall*)op;
730
731 // only visit register parameters
732 int n = opRTCall->_arguments->length();
733 for (int i = 0; i < n; i++) {
734 if (!opRTCall->_arguments->at(i)->is_pointer()) {
735 do_input(*opRTCall->_arguments->adr_at(i));
736 }
737 }
738 if (opRTCall->_info) do_info(opRTCall->_info);
|
698 // LIR_OpJavaCall
699 case lir_static_call:
700 case lir_optvirtual_call:
701 case lir_icvirtual_call:
702 case lir_virtual_call:
703 case lir_dynamic_call: {
704 LIR_OpJavaCall* opJavaCall = op->as_OpJavaCall();
705 assert(opJavaCall != NULL, "must be");
706
707 if (opJavaCall->_receiver->is_valid()) do_input(opJavaCall->_receiver);
708
709 // only visit register parameters
710 int n = opJavaCall->_arguments->length();
711 for (int i = 0; i < n; i++) {
712 if (!opJavaCall->_arguments->at(i)->is_pointer()) {
713 do_input(*opJavaCall->_arguments->adr_at(i));
714 }
715 }
716
717 if (opJavaCall->_info) do_info(opJavaCall->_info);
718 if (opJavaCall->is_method_handle_invoke()) {
719 LIR_Opr method_handle_invoke_SP_save_opr = FrameMap::method_handle_invoke_SP_save_opr();
720 do_temp(method_handle_invoke_SP_save_opr);
721 }
722 do_call();
723 if (opJavaCall->_result->is_valid()) do_output(opJavaCall->_result);
724
725 break;
726 }
727
728
729 // LIR_OpRTCall
730 case lir_rtcall: {
731 assert(op->as_OpRTCall() != NULL, "must be");
732 LIR_OpRTCall* opRTCall = (LIR_OpRTCall*)op;
733
734 // only visit register parameters
735 int n = opRTCall->_arguments->length();
736 for (int i = 0; i < n; i++) {
737 if (!opRTCall->_arguments->at(i)->is_pointer()) {
738 do_input(*opRTCall->_arguments->adr_at(i));
739 }
740 }
741 if (opRTCall->_info) do_info(opRTCall->_info);
|