src/share/vm/code/vmreg.hpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File 7181494 Sdiff src/share/vm/code

src/share/vm/code/vmreg.hpp

Print this page




 114   bool is_reg()   const { return is_valid() && !is_stack(); }
 115 
 116   // A concrete register is a value that returns true for is_reg() and is
 117   // also a register you could use in the assembler. On machines with
 118   // 64bit registers only one half of the VMReg (and OptoReg) is considered
 119   // concrete.
 120   bool is_concrete();
 121 
 122   // VMRegs are 4 bytes wide on all platforms
 123   static const int stack_slot_size;
 124   static const int slots_per_word;
 125 
 126 
 127   // This really ought to check that the register is "real" in the sense that
 128   // we don't try and get the VMReg number of a physical register that doesn't
 129   // have an expressible part. That would be pd specific code
 130   VMReg next() {
 131     assert((is_reg() && value() < stack0->value() - 1) || is_stack(), "must be");
 132     return (VMReg)(intptr_t)(value() + 1);
 133   }




 134   VMReg prev() {
 135     assert((is_stack() && value() > stack0->value()) || (is_reg() && value() != 0), "must be");
 136     return (VMReg)(intptr_t)(value() - 1);
 137   }
 138 
 139 
 140   intptr_t value() const         {return (intptr_t) this; }
 141 
 142   void print_on(outputStream* st) const;
 143   void print() const { print_on(tty); }
 144 
 145   // bias a stack slot.
 146   // Typically used to adjust a virtual frame slots by amounts that are offset by
 147   // amounts that are part of the native abi. The VMReg must be a stack slot
 148   // and the result must be also.
 149 
 150   VMReg bias(int offset) {
 151     assert(is_stack(), "must be");
 152     // VMReg res = VMRegImpl::as_VMReg(value() + offset);
 153     VMReg res = stack2reg(reg2stack() + offset);




 114   bool is_reg()   const { return is_valid() && !is_stack(); }
 115 
 116   // A concrete register is a value that returns true for is_reg() and is
 117   // also a register you could use in the assembler. On machines with
 118   // 64bit registers only one half of the VMReg (and OptoReg) is considered
 119   // concrete.
 120   bool is_concrete();
 121 
 122   // VMRegs are 4 bytes wide on all platforms
 123   static const int stack_slot_size;
 124   static const int slots_per_word;
 125 
 126 
 127   // This really ought to check that the register is "real" in the sense that
 128   // we don't try and get the VMReg number of a physical register that doesn't
 129   // have an expressible part. That would be pd specific code
 130   VMReg next() {
 131     assert((is_reg() && value() < stack0->value() - 1) || is_stack(), "must be");
 132     return (VMReg)(intptr_t)(value() + 1);
 133   }
 134   VMReg next(int i) {
 135     assert((is_reg() && value() < stack0->value() - i) || is_stack(), "must be");
 136     return (VMReg)(intptr_t)(value() + i);
 137   }
 138   VMReg prev() {
 139     assert((is_stack() && value() > stack0->value()) || (is_reg() && value() != 0), "must be");
 140     return (VMReg)(intptr_t)(value() - 1);
 141   }
 142 
 143 
 144   intptr_t value() const         {return (intptr_t) this; }
 145 
 146   void print_on(outputStream* st) const;
 147   void print() const { print_on(tty); }
 148 
 149   // bias a stack slot.
 150   // Typically used to adjust a virtual frame slots by amounts that are offset by
 151   // amounts that are part of the native abi. The VMReg must be a stack slot
 152   // and the result must be also.
 153 
 154   VMReg bias(int offset) {
 155     assert(is_stack(), "must be");
 156     // VMReg res = VMRegImpl::as_VMReg(value() + offset);
 157     VMReg res = stack2reg(reg2stack() + offset);


src/share/vm/code/vmreg.hpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File