hotspot/src/share/vm/opto/machnode.cpp
changeset 4566 b363f6ef4068
parent 3283 c8b1b0aecdfe
child 5547 f4b087cbb361
equal deleted inserted replaced
4565:cbb3fed38514 4566:b363f6ef4068
   634   MachCallJavaNode &call = (MachCallJavaNode&)n;
   634   MachCallJavaNode &call = (MachCallJavaNode&)n;
   635   return MachCallNode::cmp(call) && _method->equals(call._method);
   635   return MachCallNode::cmp(call) && _method->equals(call._method);
   636 }
   636 }
   637 #ifndef PRODUCT
   637 #ifndef PRODUCT
   638 void MachCallJavaNode::dump_spec(outputStream *st) const {
   638 void MachCallJavaNode::dump_spec(outputStream *st) const {
   639   if( _method ) {
   639   if (_method_handle_invoke)
       
   640     st->print("MethodHandle ");
       
   641   if (_method) {
   640     _method->print_short_name(st);
   642     _method->print_short_name(st);
   641     st->print(" ");
   643     st->print(" ");
   642   }
   644   }
   643   MachCallNode::dump_spec(st);
   645   MachCallNode::dump_spec(st);
   644 }
   646 }
   645 #endif
   647 #endif
       
   648 
       
   649 //------------------------------Registers--------------------------------------
       
   650 const RegMask &MachCallJavaNode::in_RegMask(uint idx) const {
       
   651   // Values in the domain use the users calling convention, embodied in the
       
   652   // _in_rms array of RegMasks.
       
   653   if (idx < tf()->domain()->cnt())  return _in_rms[idx];
       
   654   // Values outside the domain represent debug info
       
   655   Matcher* m = Compile::current()->matcher();
       
   656   // If this call is a MethodHandle invoke we have to use a different
       
   657   // debugmask which does not include the register we use to save the
       
   658   // SP over MH invokes.
       
   659   RegMask** debugmask = _method_handle_invoke ? m->idealreg2mhdebugmask : m->idealreg2debugmask;
       
   660   return *debugmask[in(idx)->ideal_reg()];
       
   661 }
   646 
   662 
   647 //=============================================================================
   663 //=============================================================================
   648 uint MachCallStaticJavaNode::size_of() const { return sizeof(*this); }
   664 uint MachCallStaticJavaNode::size_of() const { return sizeof(*this); }
   649 uint MachCallStaticJavaNode::cmp( const Node &n ) const {
   665 uint MachCallStaticJavaNode::cmp( const Node &n ) const {
   650   MachCallStaticJavaNode &call = (MachCallStaticJavaNode&)n;
   666   MachCallStaticJavaNode &call = (MachCallStaticJavaNode&)n;