src/share/vm/c1/c1_LIR.hpp

Print this page




 488     times_2  =  1,
 489     times_4  =  2,
 490     times_8  =  3
 491   };
 492 
 493  private:
 494   LIR_Opr   _base;
 495   LIR_Opr   _index;
 496   Scale     _scale;
 497   intx      _disp;
 498   BasicType _type;
 499 
 500  public:
 501   LIR_Address(LIR_Opr base, LIR_Opr index, BasicType type):
 502        _base(base)
 503      , _index(index)
 504      , _scale(times_1)
 505      , _type(type)
 506      , _disp(0) { verify(); }
 507 
 508   LIR_Address(LIR_Opr base, int disp, BasicType type):
 509        _base(base)
 510      , _index(LIR_OprDesc::illegalOpr())
 511      , _scale(times_1)
 512      , _type(type)
 513      , _disp(disp) { verify(); }
 514 
 515 #ifdef X86
 516   LIR_Address(LIR_Opr base, LIR_Opr index, Scale scale, int disp, BasicType type):
 517        _base(base)
 518      , _index(index)
 519      , _scale(scale)
 520      , _type(type)
 521      , _disp(disp) { verify(); }
 522 #endif // X86
 523 
 524   LIR_Opr base()  const                          { return _base;  }
 525   LIR_Opr index() const                          { return _index; }
 526   Scale   scale() const                          { return _scale; }
 527   intx    disp()  const                          { return _disp;  }
 528 
 529   bool equals(LIR_Address* other) const          { return base() == other->base() && index() == other->index() && disp() == other->disp() && scale() == other->scale(); }
 530 
 531   virtual LIR_Address* as_address()              { return this;   }
 532   virtual BasicType type() const                 { return _type; }
 533   virtual void print_value_on(outputStream* out) const PRODUCT_RETURN;
 534 
 535   void verify() const PRODUCT_RETURN;
 536 




 488     times_2  =  1,
 489     times_4  =  2,
 490     times_8  =  3
 491   };
 492 
 493  private:
 494   LIR_Opr   _base;
 495   LIR_Opr   _index;
 496   Scale     _scale;
 497   intx      _disp;
 498   BasicType _type;
 499 
 500  public:
 501   LIR_Address(LIR_Opr base, LIR_Opr index, BasicType type):
 502        _base(base)
 503      , _index(index)
 504      , _scale(times_1)
 505      , _type(type)
 506      , _disp(0) { verify(); }
 507 
 508   LIR_Address(LIR_Opr base, intx disp, BasicType type):
 509        _base(base)
 510      , _index(LIR_OprDesc::illegalOpr())
 511      , _scale(times_1)
 512      , _type(type)
 513      , _disp(disp) { verify(); }
 514 
 515 #ifdef X86
 516   LIR_Address(LIR_Opr base, LIR_Opr index, Scale scale, intx disp, BasicType type):
 517        _base(base)
 518      , _index(index)
 519      , _scale(scale)
 520      , _type(type)
 521      , _disp(disp) { verify(); }
 522 #endif // X86
 523 
 524   LIR_Opr base()  const                          { return _base;  }
 525   LIR_Opr index() const                          { return _index; }
 526   Scale   scale() const                          { return _scale; }
 527   intx    disp()  const                          { return _disp;  }
 528 
 529   bool equals(LIR_Address* other) const          { return base() == other->base() && index() == other->index() && disp() == other->disp() && scale() == other->scale(); }
 530 
 531   virtual LIR_Address* as_address()              { return this;   }
 532   virtual BasicType type() const                 { return _type; }
 533   virtual void print_value_on(outputStream* out) const PRODUCT_RETURN;
 534 
 535   void verify() const PRODUCT_RETURN;
 536