< 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 >