< prev index next >

src/share/vm/opto/optoreg.hpp

Print this page




  86   // Stack pointer register
  87   static OptoReg::Name c_frame_pointer;
  88 
  89 
  90 
  91   // Increment a register number.  As in:
  92   //    "for ( OptoReg::Name i; i=Control; i = add(i,1) ) ..."
  93   static Name add( Name x, int y ) { return Name(x+y); }
  94 
  95   // (We would like to have an operator+ for RegName, but it is not
  96   // a class, so this would be illegal in C++.)
  97 
  98   static void dump(int, outputStream *st = tty);
  99 
 100   // Get the stack slot number of an OptoReg::Name
 101   static unsigned int reg2stack( OptoReg::Name r) {
 102     assert( r >= stack0(), " must be");
 103     return r - stack0();
 104   }
 105 




 106   // convert a stack slot number into an OptoReg::Name
 107   static OptoReg::Name stack2reg( int idx) {
 108     return Name(stack0() + idx);
 109   }
 110 
 111   static bool is_stack(Name n) {
 112     return n >= stack0();
 113   }
 114 
 115   static bool is_valid(Name n) {
 116     return (n != Bad);
 117   }
 118 
 119   static bool is_reg(Name n) {
 120     return  is_valid(n) && !is_stack(n);
 121   }
 122 
 123   static VMReg as_VMReg(OptoReg::Name n) {
 124     if (is_reg(n)) {
 125       // Must use table, it'd be nice if Bad was indexable...




  86   // Stack pointer register
  87   static OptoReg::Name c_frame_pointer;
  88 
  89 
  90 
  91   // Increment a register number.  As in:
  92   //    "for ( OptoReg::Name i; i=Control; i = add(i,1) ) ..."
  93   static Name add( Name x, int y ) { return Name(x+y); }
  94 
  95   // (We would like to have an operator+ for RegName, but it is not
  96   // a class, so this would be illegal in C++.)
  97 
  98   static void dump(int, outputStream *st = tty);
  99 
 100   // Get the stack slot number of an OptoReg::Name
 101   static unsigned int reg2stack( OptoReg::Name r) {
 102     assert( r >= stack0(), " must be");
 103     return r - stack0();
 104   }
 105 
 106   static void invalidate(Name n) {
 107     vm2opto[n] = Bad;
 108   }
 109 
 110   // convert a stack slot number into an OptoReg::Name
 111   static OptoReg::Name stack2reg( int idx) {
 112     return Name(stack0() + idx);
 113   }
 114 
 115   static bool is_stack(Name n) {
 116     return n >= stack0();
 117   }
 118 
 119   static bool is_valid(Name n) {
 120     return (n != Bad);
 121   }
 122 
 123   static bool is_reg(Name n) {
 124     return  is_valid(n) && !is_stack(n);
 125   }
 126 
 127   static VMReg as_VMReg(OptoReg::Name n) {
 128     if (is_reg(n)) {
 129       // Must use table, it'd be nice if Bad was indexable...


< prev index next >