> > + os << "["; > > + if (reg.reladdr) > > + os << *reg.reladdr << "+"; > > + if (reg.reladdr2) > > + os << *reg.reladdr2 << "+"; > > This isn't how that works. reladdr2 is the relative address for 2D > register accesses; see has_index2 and index2D.
Actually, I don't like this part of the dump at all: it is not known from the register information I can access here whether an address which address register index goes where and if an address register is used at all. - and documentation on the issue is also very sparse. From the code accessing has_index2 I figured that the dump should look something like this: ? template <typename st_reg> void dump_reg_access(std::ostream& os, const st_reg& reg) { os << tgsi_file_names[reg.file]; if (reg.file == PROGRAM_ARRAY) os << "(" << reg.array_id << ")"; os << "["; if (reg.reladdr) os << *reg.reladdr << "+"; os << reg.index << "]"; if (reg.has_index2) { os << "["; if (reg.reladdr2) os << *reg.reladdr2 << "+"; os << reg.index2D << "]"; } } > > Besides, you're not actually printing reg.index. > > Same for when you're printing the destination. This I was already about to fix. Many thanks for you comments (also the other ones). Best, Gert _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev