784 785 //============================================================================= 786 #ifndef PRODUCT 787 void MachCallDynamicJavaNode::dump_spec(outputStream *st) const { 788 st->print("Dynamic "); 789 MachCallJavaNode::dump_spec(st); 790 } 791 #endif 792 //============================================================================= 793 uint MachCallRuntimeNode::size_of() const { return sizeof(*this); } 794 uint MachCallRuntimeNode::cmp( const Node &n ) const { 795 MachCallRuntimeNode &call = (MachCallRuntimeNode&)n; 796 return MachCallNode::cmp(call) && !strcmp(_name,call._name); 797 } 798 #ifndef PRODUCT 799 void MachCallRuntimeNode::dump_spec(outputStream *st) const { 800 st->print("%s ",_name); 801 MachCallNode::dump_spec(st); 802 } 803 #endif 804 //============================================================================= 805 // A shared JVMState for all HaltNodes. Indicates the start of debug info 806 // is at TypeFunc::Parms. Only required for SOE register spill handling - 807 // to indicate where the stack-slot-only debug info inputs begin. 808 // There is no other JVM state needed here. 809 JVMState jvms_for_throw(0); 810 JVMState *MachHaltNode::jvms() const { 811 return &jvms_for_throw; 812 } 813 814 uint MachMemBarNode::size_of() const { return sizeof(*this); } 815 816 const TypePtr *MachMemBarNode::adr_type() const { 817 return _adr_type; 818 } 819 820 821 //============================================================================= 822 #ifndef PRODUCT 823 void labelOper::int_format(PhaseRegAlloc *ra, const MachNode *node, outputStream *st) const { | 784 785 //============================================================================= 786 #ifndef PRODUCT 787 void MachCallDynamicJavaNode::dump_spec(outputStream *st) const { 788 st->print("Dynamic "); 789 MachCallJavaNode::dump_spec(st); 790 } 791 #endif 792 //============================================================================= 793 uint MachCallRuntimeNode::size_of() const { return sizeof(*this); } 794 uint MachCallRuntimeNode::cmp( const Node &n ) const { 795 MachCallRuntimeNode &call = (MachCallRuntimeNode&)n; 796 return MachCallNode::cmp(call) && !strcmp(_name,call._name); 797 } 798 #ifndef PRODUCT 799 void MachCallRuntimeNode::dump_spec(outputStream *st) const { 800 st->print("%s ",_name); 801 MachCallNode::dump_spec(st); 802 } 803 #endif 804 805 uint MachCallLeafNode::size_of() const { return sizeof(*this); } 806 uint MachCallLeafNode::cmp( const Node &n ) const { 807 MachCallLeafNode &call = (MachCallLeafNode&)n; 808 return MachCallRuntimeNode::cmp(call) && _preserves_fp_registers == call._preserves_fp_registers; 809 } 810 #ifndef PRODUCT 811 void MachCallLeafNode::dump_spec(outputStream *st) const { 812 if (_preserves_fp_registers) { 813 st->print("preserves_fp_registers "); 814 } 815 MachCallRuntimeNode::dump_spec(st); 816 } 817 #endif 818 //============================================================================= 819 // A shared JVMState for all HaltNodes. Indicates the start of debug info 820 // is at TypeFunc::Parms. Only required for SOE register spill handling - 821 // to indicate where the stack-slot-only debug info inputs begin. 822 // There is no other JVM state needed here. 823 JVMState jvms_for_throw(0); 824 JVMState *MachHaltNode::jvms() const { 825 return &jvms_for_throw; 826 } 827 828 uint MachMemBarNode::size_of() const { return sizeof(*this); } 829 830 const TypePtr *MachMemBarNode::adr_type() const { 831 return _adr_type; 832 } 833 834 835 //============================================================================= 836 #ifndef PRODUCT 837 void labelOper::int_format(PhaseRegAlloc *ra, const MachNode *node, outputStream *st) const { |