< prev index next >

src/hotspot/share/opto/callnode.cpp

Print this page




1059   return CallNode::cmp(call) && !strcmp(_name,call._name);
1060 }
1061 #ifndef PRODUCT
1062 void CallRuntimeNode::dump_spec(outputStream *st) const {
1063   st->print("# ");
1064   st->print("%s", _name);
1065   CallNode::dump_spec(st);
1066 }
1067 #endif
1068 
1069 //------------------------------calling_convention-----------------------------
1070 void CallRuntimeNode::calling_convention( BasicType* sig_bt, VMRegPair *parm_regs, uint argcnt ) const {
1071   Matcher::c_calling_convention( sig_bt, parm_regs, argcnt );
1072 }
1073 
1074 //=============================================================================
1075 //------------------------------calling_convention-----------------------------
1076 
1077 
1078 //=============================================================================






1079 #ifndef PRODUCT
1080 void CallLeafNode::dump_spec(outputStream *st) const {
1081   st->print("# ");
1082   st->print("%s", _name);



1083   CallNode::dump_spec(st);
1084 }
1085 #endif
1086 
1087 //=============================================================================
1088 
1089 void SafePointNode::set_local(JVMState* jvms, uint idx, Node *c) {
1090   assert(verify_jvms(jvms), "jvms must match");
1091   int loc = jvms->locoff() + idx;
1092   if (in(loc)->is_top() && idx > 0 && !c->is_top() ) {
1093     // If current local idx is top then local idx - 1 could
1094     // be a long/double that needs to be killed since top could
1095     // represent the 2nd half ofthe long/double.
1096     uint ideal = in(loc -1)->ideal_reg();
1097     if (ideal == Op_RegD || ideal == Op_RegL) {
1098       // set other (low index) half to top
1099       set_req(loc - 1, in(loc));
1100     }
1101   }
1102   set_req(loc, c);




1059   return CallNode::cmp(call) && !strcmp(_name,call._name);
1060 }
1061 #ifndef PRODUCT
1062 void CallRuntimeNode::dump_spec(outputStream *st) const {
1063   st->print("# ");
1064   st->print("%s", _name);
1065   CallNode::dump_spec(st);
1066 }
1067 #endif
1068 
1069 //------------------------------calling_convention-----------------------------
1070 void CallRuntimeNode::calling_convention( BasicType* sig_bt, VMRegPair *parm_regs, uint argcnt ) const {
1071   Matcher::c_calling_convention( sig_bt, parm_regs, argcnt );
1072 }
1073 
1074 //=============================================================================
1075 //------------------------------calling_convention-----------------------------
1076 
1077 
1078 //=============================================================================
1079 uint CallLeafNode::size_of() const { return sizeof(*this); }
1080 uint CallLeafNode::cmp(const Node &n) const {
1081   CallLeafNode &call = (CallLeafNode&)n;
1082   return CallRuntimeNode::cmp(call) && _preserves_fp_registers == call._preserves_fp_registers;
1083 }
1084 
1085 #ifndef PRODUCT
1086 void CallLeafNode::dump_spec(outputStream *st) const {
1087   st->print("# ");
1088   st->print("%s", _name);
1089   if (_preserves_fp_registers) {
1090     st->print("preserves_fp_registers");
1091   }
1092   CallNode::dump_spec(st);
1093 }
1094 #endif
1095 
1096 //=============================================================================
1097 
1098 void SafePointNode::set_local(JVMState* jvms, uint idx, Node *c) {
1099   assert(verify_jvms(jvms), "jvms must match");
1100   int loc = jvms->locoff() + idx;
1101   if (in(loc)->is_top() && idx > 0 && !c->is_top() ) {
1102     // If current local idx is top then local idx - 1 could
1103     // be a long/double that needs to be killed since top could
1104     // represent the 2nd half ofthe long/double.
1105     uint ideal = in(loc -1)->ideal_reg();
1106     if (ideal == Op_RegD || ideal == Op_RegL) {
1107       // set other (low index) half to top
1108       set_req(loc - 1, in(loc));
1109     }
1110   }
1111   set_req(loc, c);


< prev index next >