Lines Matching refs:class
16 fn index(&self, class: RegClass) -> &Self::Output { in index()
17 match class { in index()
26 fn index_mut(&mut self, class: RegClass) -> &mut Self::Output { in index_mut()
27 match class { in index_mut()
38 class: RegClass, field
56 class: RegClass::Int, in int()
68 class: RegClass::Float, in float()
79 debug_assert!(gpr.class == RegClass::Int); in new()
80 debug_assert!(fpr.class == RegClass::Float); in new()
87 pub fn reg_for_class(&mut self, class: RegClass) -> Option<Reg> { in reg_for_class()
88 self.available(class).then(|| { in reg_for_class()
89 let bitset = &self[class]; in reg_for_class()
91 self.allocate(class, index.into()); in reg_for_class()
92 Reg::from(class, index as usize) in reg_for_class()
100 self.allocate(reg.class(), index.try_into().unwrap()); in reg()
108 let bitset = &self[reg.class()]; in free()
112 if !self.is_non_allocatable(reg.class(), index) { in free()
113 self[reg.class()].allocatable |= 1 << index; in free()
119 let bitset = &self[reg.class()]; in named_reg_available()
124 || self.is_non_allocatable(reg.class(), reg.hw_enc().try_into().unwrap()) in named_reg_available()
127 fn available(&self, class: RegClass) -> bool { in available()
128 let bitset = &self[class]; in available()
132 fn allocate(&mut self, class: RegClass, index: u64) { in allocate()
133 if !self.is_non_allocatable(class, index) { in allocate()
134 self[class].allocatable &= !(1 << index); in allocate()
138 fn is_non_allocatable(&self, class: RegClass, index: u64) -> bool { in is_non_allocatable()
139 let bitset = &self[class]; in is_non_allocatable()