< prev index next >

src/hotspot/share/opto/chaitin.hpp

Print this page
*** 158,10 ***
--- 158,20 ---
      assert(_is_scalable, "scalable register");
      assert(slots > 0, "slots of scalable register is not valid");
      _scalable_reg_slots = slots;
    }
  
+   bool is_scalable() {
+ #ifdef ASSERT
+     if (_is_scalable) {
+       // Should only be a vector for now, but it could also be a RegVMask in future.
+       assert(_is_vector && (_num_regs == RegMask::SlotsPerVecA), "unexpected scalable reg");
+     }
+ #endif
+     return _is_scalable;
+   }
+ 
  private:
    // Number of physical registers this live range uses when it colors
    // Architecture and register-set dependent
    uint16_t _reg_pressure;
  public:

*** 184,10 ***
--- 194,11 ---
  
    uint   _is_oop:1,             // Live-range holds an oop
           _is_float:1,           // True if in float registers
           _is_vector:1,          // True if in vector registers
           _is_scalable:1,        // True if register size is scalable
+                                 //      e.g. Arm SVE vector/predicate registers.
           _was_spilled1:1,       // True if prior spilling on def
           _was_spilled2:1,       // True if twice prior spilling on def
           _is_bound:1,           // live range starts life with no
                                  // degrees of freedom.
           _direct_conflict:1,    // True if def and use registers in conflict
< prev index next >