hotspot/src/cpu/sparc/vm/vmreg_sparc.inline.hpp
changeset 25715 d5a8dbdc5150
parent 7397 5b173b4ca846
equal deleted inserted replaced
25469:3bcfa1db9717 25715:d5a8dbdc5150
    31 }
    31 }
    32 
    32 
    33 inline VMReg FloatRegisterImpl::as_VMReg() { return VMRegImpl::as_VMReg( ConcreteRegisterImpl::max_gpr + encoding() ); }
    33 inline VMReg FloatRegisterImpl::as_VMReg() { return VMRegImpl::as_VMReg( ConcreteRegisterImpl::max_gpr + encoding() ); }
    34 
    34 
    35 
    35 
    36 inline bool VMRegImpl::is_Register() { return value() >= 0 && value() < ConcreteRegisterImpl::max_gpr; }
       
    37 inline bool VMRegImpl::is_FloatRegister() { return value() >= ConcreteRegisterImpl::max_gpr &&
       
    38                                                    value() < ConcreteRegisterImpl::max_fpr; }
       
    39 inline Register VMRegImpl::as_Register() {
       
    40 
       
    41   assert( is_Register() && is_even(value()), "even-aligned GPR name" );
       
    42   // Yuk
       
    43   return ::as_Register(value()>>1);
       
    44 }
       
    45 
       
    46 inline FloatRegister VMRegImpl::as_FloatRegister() {
       
    47   assert( is_FloatRegister(), "must be" );
       
    48   // Yuk
       
    49   return ::as_FloatRegister( value() - ConcreteRegisterImpl::max_gpr );
       
    50 }
       
    51 
       
    52 inline   bool VMRegImpl::is_concrete() {
       
    53   assert(is_reg(), "must be");
       
    54   int v = value();
       
    55   if ( v  <  ConcreteRegisterImpl::max_gpr ) {
       
    56     return is_even(v);
       
    57   }
       
    58   // F0..F31
       
    59   if ( v <= ConcreteRegisterImpl::max_gpr + 31) return true;
       
    60   if ( v <  ConcreteRegisterImpl::max_fpr) {
       
    61     return is_even(v);
       
    62   }
       
    63   assert(false, "what register?");
       
    64   return false;
       
    65 }
       
    66 
    36 
    67 #endif // CPU_SPARC_VM_VMREG_SPARC_INLINE_HPP
    37 #endif // CPU_SPARC_VM_VMREG_SPARC_INLINE_HPP