hotspot/src/cpu/sparc/vm/vmreg_sparc.hpp
changeset 25715 d5a8dbdc5150
parent 7397 5b173b4ca846
child 46592 6e357e2c8143
equal deleted inserted replaced
25469:3bcfa1db9717 25715:d5a8dbdc5150
    23  */
    23  */
    24 
    24 
    25 #ifndef CPU_SPARC_VM_VMREG_SPARC_HPP
    25 #ifndef CPU_SPARC_VM_VMREG_SPARC_HPP
    26 #define CPU_SPARC_VM_VMREG_SPARC_HPP
    26 #define CPU_SPARC_VM_VMREG_SPARC_HPP
    27 
    27 
    28   bool is_Register();
    28 inline bool is_Register() { return value() >= 0 && value() < ConcreteRegisterImpl::max_gpr; }
    29   Register as_Register();
    29 inline bool is_FloatRegister() { return value() >= ConcreteRegisterImpl::max_gpr &&
       
    30                                                    value() < ConcreteRegisterImpl::max_fpr; }
       
    31 inline Register as_Register() {
    30 
    32 
    31   bool is_FloatRegister();
    33   assert( is_Register() && is_even(value()), "even-aligned GPR name" );
    32   FloatRegister as_FloatRegister();
    34   // Yuk
       
    35   return ::as_Register(value()>>1);
       
    36 }
       
    37 
       
    38 inline FloatRegister as_FloatRegister() {
       
    39   assert( is_FloatRegister(), "must be" );
       
    40   // Yuk
       
    41   return ::as_FloatRegister( value() - ConcreteRegisterImpl::max_gpr );
       
    42 }
       
    43 
       
    44 inline   bool is_concrete() {
       
    45   assert(is_reg(), "must be");
       
    46   int v = value();
       
    47   if ( v  <  ConcreteRegisterImpl::max_gpr ) {
       
    48     return is_even(v);
       
    49   }
       
    50   // F0..F31
       
    51   if ( v <= ConcreteRegisterImpl::max_gpr + 31) return true;
       
    52   if ( v <  ConcreteRegisterImpl::max_fpr) {
       
    53     return is_even(v);
       
    54   }
       
    55   assert(false, "what register?");
       
    56   return false;
       
    57 }
    33 
    58 
    34 #endif // CPU_SPARC_VM_VMREG_SPARC_HPP
    59 #endif // CPU_SPARC_VM_VMREG_SPARC_HPP