src/share/vm/opto/machnode.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File
*** old/src/share/vm/opto/machnode.cpp	Wed Dec  2 17:37:56 2009
--- new/src/share/vm/opto/machnode.cpp	Wed Dec  2 17:37:56 2009

*** 634,651 **** --- 634,664 ---- MachCallJavaNode &call = (MachCallJavaNode&)n; return MachCallNode::cmp(call) && _method->equals(call._method); } #ifndef PRODUCT void MachCallJavaNode::dump_spec(outputStream *st) const { ! if( _method ) { ! if (_method_handle_invoke) + st->print("MethodHandle "); + if (_method) { _method->print_short_name(st); st->print(" "); } MachCallNode::dump_spec(st); } #endif + //------------------------------Registers-------------------------------------- + const RegMask &MachCallJavaNode::in_RegMask(uint idx) const { + // Values in the domain use the users calling convention, embodied in the + // _in_rms array of RegMasks. + if (idx < tf()->domain()->cnt()) return _in_rms[idx]; + // Values outside the domain represent debug info + Matcher* m = Compile::current()->matcher(); + RegMask** debugmask = _method_handle_invoke ? m->idealreg2mhdebugmask : m->idealreg2debugmask; + return *debugmask[in(idx)->ideal_reg()]; + } + //============================================================================= uint MachCallStaticJavaNode::size_of() const { return sizeof(*this); } uint MachCallStaticJavaNode::cmp( const Node &n ) const { MachCallStaticJavaNode &call = (MachCallStaticJavaNode&)n; return MachCallJavaNode::cmp(call) && _name == call._name;

src/share/vm/opto/machnode.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File