Print this page
rev 1082 : [mq]: indy.compiler.patch

Split Close
Expand all
Collapse all
          --- old/src/share/vm/opto/machnode.cpp
          +++ new/src/share/vm/opto/machnode.cpp
↓ open down ↓ 628 lines elided ↑ open up ↑
 629  629  }
 630  630  
 631  631  //=============================================================================
 632  632  uint MachCallJavaNode::size_of() const { return sizeof(*this); }
 633  633  uint MachCallJavaNode::cmp( const Node &n ) const {
 634  634    MachCallJavaNode &call = (MachCallJavaNode&)n;
 635  635    return MachCallNode::cmp(call) && _method->equals(call._method);
 636  636  }
 637  637  #ifndef PRODUCT
 638  638  void MachCallJavaNode::dump_spec(outputStream *st) const {
 639      -  if( _method ) {
      639 +  if (_method_handle_invoke)
      640 +    st->print("MethodHandle ");
      641 +  if (_method) {
 640  642      _method->print_short_name(st);
 641  643      st->print(" ");
 642  644    }
 643  645    MachCallNode::dump_spec(st);
 644  646  }
 645  647  #endif
 646  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 +  RegMask** debugmask = _method_handle_invoke ? m->idealreg2mhdebugmask : m->idealreg2debugmask;
      657 +  return *debugmask[in(idx)->ideal_reg()];
      658 +}
      659 +
 647  660  //=============================================================================
 648  661  uint MachCallStaticJavaNode::size_of() const { return sizeof(*this); }
 649  662  uint MachCallStaticJavaNode::cmp( const Node &n ) const {
 650  663    MachCallStaticJavaNode &call = (MachCallStaticJavaNode&)n;
 651  664    return MachCallJavaNode::cmp(call) && _name == call._name;
 652  665  }
 653  666  
 654  667  //----------------------------uncommon_trap_request----------------------------
 655  668  // If this is an uncommon trap, return the request code, else zero.
 656  669  int MachCallStaticJavaNode::uncommon_trap_request() const {
↓ open down ↓ 71 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX