677 }
678
679 //------------------------------Registers--------------------------------------
680 const RegMask &MachCallNode::in_RegMask(uint idx) const {
681 // Values in the domain use the users calling convention, embodied in the
682 // _in_rms array of RegMasks.
683 if (idx < tf()->domain()->cnt()) {
684 return _in_rms[idx];
685 }
686 if (idx == mach_constant_base_node_input()) {
687 return MachConstantBaseNode::static_out_RegMask();
688 }
689 // Values outside the domain represent debug info
690 return *Compile::current()->matcher()->idealreg2debugmask[in(idx)->ideal_reg()];
691 }
692
693 //=============================================================================
694 uint MachCallJavaNode::size_of() const { return sizeof(*this); }
695 uint MachCallJavaNode::cmp( const Node &n ) const {
696 MachCallJavaNode &call = (MachCallJavaNode&)n;
697 return MachCallNode::cmp(call) && _method->equals(call._method);
698 }
699 #ifndef PRODUCT
700 void MachCallJavaNode::dump_spec(outputStream *st) const {
701 if (_method_handle_invoke)
702 st->print("MethodHandle ");
703 if (_method) {
704 _method->print_short_name(st);
705 st->print(" ");
706 }
707 MachCallNode::dump_spec(st);
708 }
709 #endif
710
711 //------------------------------Registers--------------------------------------
712 const RegMask &MachCallJavaNode::in_RegMask(uint idx) const {
713 // Values in the domain use the users calling convention, embodied in the
714 // _in_rms array of RegMasks.
715 if (idx < tf()->domain()->cnt()) {
716 return _in_rms[idx];
717 }
|
677 }
678
679 //------------------------------Registers--------------------------------------
680 const RegMask &MachCallNode::in_RegMask(uint idx) const {
681 // Values in the domain use the users calling convention, embodied in the
682 // _in_rms array of RegMasks.
683 if (idx < tf()->domain()->cnt()) {
684 return _in_rms[idx];
685 }
686 if (idx == mach_constant_base_node_input()) {
687 return MachConstantBaseNode::static_out_RegMask();
688 }
689 // Values outside the domain represent debug info
690 return *Compile::current()->matcher()->idealreg2debugmask[in(idx)->ideal_reg()];
691 }
692
693 //=============================================================================
694 uint MachCallJavaNode::size_of() const { return sizeof(*this); }
695 uint MachCallJavaNode::cmp( const Node &n ) const {
696 MachCallJavaNode &call = (MachCallJavaNode&)n;
697 return MachCallNode::cmp(call) && _method->equals(call._method) &&
698 _override_symbolic_info == call._override_symbolic_info;
699 }
700 #ifndef PRODUCT
701 void MachCallJavaNode::dump_spec(outputStream *st) const {
702 if (_method_handle_invoke)
703 st->print("MethodHandle ");
704 if (_method) {
705 _method->print_short_name(st);
706 st->print(" ");
707 }
708 MachCallNode::dump_spec(st);
709 }
710 #endif
711
712 //------------------------------Registers--------------------------------------
713 const RegMask &MachCallJavaNode::in_RegMask(uint idx) const {
714 // Values in the domain use the users calling convention, embodied in the
715 // _in_rms array of RegMasks.
716 if (idx < tf()->domain()->cnt()) {
717 return _in_rms[idx];
718 }
|