< prev index next >
src/share/vm/opto/callnode.cpp
Print this page
*** 1092,1101 ****
--- 1092,1108 ----
}
#endif
//------------------------------calling_convention-----------------------------
void CallRuntimeNode::calling_convention( BasicType* sig_bt, VMRegPair *parm_regs, uint argcnt ) const {
+ if (_entry_point == NULL) {
+ // The call to that stub is a special case: its inputs are
+ // multiple values returned from a call and so it should follow
+ // the return convention.
+ SharedRuntime::java_return_convention(sig_bt, parm_regs, argcnt);
+ return;
+ }
Matcher::c_calling_convention( sig_bt, parm_regs, argcnt );
}
//=============================================================================
//------------------------------calling_convention-----------------------------
*** 1108,1117 ****
--- 1115,1130 ----
st->print("%s", _name);
CallNode::dump_spec(st);
}
#endif
+ uint CallLeafNoFPNode::match_edge(uint idx) const {
+ // Null entry point is a special case for which the target is in a
+ // register. Need to match that edge.
+ return entry_point() == NULL && idx == TypeFunc::Parms;
+ }
+
//=============================================================================
void SafePointNode::set_local(JVMState* jvms, uint idx, Node *c) {
assert(verify_jvms(jvms), "jvms must match");
int loc = jvms->locoff() + idx;
< prev index next >