213 214 RegSet() : _bitset(0) { } 215 216 RegSet(Register r1) : _bitset(r1->bit()) { } 217 218 RegSet operator+(const RegSet aSet) const { 219 RegSet result(_bitset | aSet._bitset); 220 return result; 221 } 222 223 RegSet operator-(const RegSet aSet) const { 224 RegSet result(_bitset & ~aSet._bitset); 225 return result; 226 } 227 228 RegSet &operator+=(const RegSet aSet) { 229 *this = *this + aSet; 230 return *this; 231 } 232 233 static RegSet of(Register r1) { 234 return RegSet(r1); 235 } 236 237 static RegSet of(Register r1, Register r2) { 238 return of(r1) + r2; 239 } 240 241 static RegSet of(Register r1, Register r2, Register r3) { 242 return of(r1, r2) + r3; 243 } 244 245 static RegSet of(Register r1, Register r2, Register r3, Register r4) { 246 return of(r1, r2, r3) + r4; 247 } 248 249 static RegSet range(Register start, Register end) { 250 uint32_t bits = ~0; 251 bits <<= start->encoding(); 252 bits <<= 31 - end->encoding(); | 213 214 RegSet() : _bitset(0) { } 215 216 RegSet(Register r1) : _bitset(r1->bit()) { } 217 218 RegSet operator+(const RegSet aSet) const { 219 RegSet result(_bitset | aSet._bitset); 220 return result; 221 } 222 223 RegSet operator-(const RegSet aSet) const { 224 RegSet result(_bitset & ~aSet._bitset); 225 return result; 226 } 227 228 RegSet &operator+=(const RegSet aSet) { 229 *this = *this + aSet; 230 return *this; 231 } 232 233 RegSet &operator-=(const RegSet aSet) { 234 *this = *this - aSet; 235 return *this; 236 } 237 238 static RegSet of(Register r1) { 239 return RegSet(r1); 240 } 241 242 static RegSet of(Register r1, Register r2) { 243 return of(r1) + r2; 244 } 245 246 static RegSet of(Register r1, Register r2, Register r3) { 247 return of(r1, r2) + r3; 248 } 249 250 static RegSet of(Register r1, Register r2, Register r3, Register r4) { 251 return of(r1, r2, r3) + r4; 252 } 253 254 static RegSet range(Register start, Register end) { 255 uint32_t bits = ~0; 256 bits <<= start->encoding(); 257 bits <<= 31 - end->encoding(); |