Lines Matching refs:regs
252 RegisterFile() { regs.fill(0); }
254 std::array<uint32_t, 512> regs;
257 const uint32_t& operator[](PhysReg index) const { return regs[index]; }
259 uint32_t& operator[](PhysReg index) { return regs[index]; }
265 res += !regs[reg];
274 if (regs[i] & 0x0FFFFFFF)
276 if (regs[i] == 0xF0000000) {
297 if (regs[start] == 0xFFFFFFFF)
299 if (regs[start] == 0xF0000000) {
311 if (regs[start] == 0xF0000000) {
314 return regs[start] + 1 <= 1;
347 return regs[reg] == 0xF0000000 ? subdword_regs[reg][reg.byte()] : regs[reg];
354 regs[start + i] = val;
369 regs[i] = 0;
420 PhysRegInterval regs = get_reg_bounds(ctx.program, vgprs ? RegType::vgpr : RegType::sgpr);
426 for (int i = 0; i < std::min<int>(max_regs_per_line, ROUND_DOWN_TO(regs.size, 4)); i += 4) {
432 auto line_begin_it = regs.begin();
433 while (line_begin_it != regs.end()) {
435 std::min<int>(max_regs_per_line, std::distance(line_begin_it, regs.end()));
437 if (line_begin_it == regs.begin()) {
440 printf(" %+4d ", std::distance(regs.begin(), line_begin_it));
456 std::count_if(regs.begin(), regs.end(), [&](auto reg) { return !reg_file[reg]; });
457 printf("%u/%u used, %u/%u free\n", regs.size - free_regs, regs.size, free_regs, regs.size);
462 for (unsigned id : find_vars(ctx, reg_file, regs)) {
478 printf("= %c[%d", reg_char, first_reg.reg() - regs.lo());
482 printf("-%d", last_reg.reg() - regs.lo());
1245 /* check how many free regs we have */
1682 const PhysRegInterval regs = get_reg_bounds(ctx.program, info.rc.type());
1686 for (unsigned id : find_vars(ctx, reg_file, regs))
1690 PhysReg space = compact_relocate_vars(ctx, vars, parallelcopies, regs.lo());