nv50/ir: print color masks of tex instructions

v2: print the mask for TXG as well
    make the mask to be printed more mask like

Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
This commit is contained in:
Karol Herbst 2018-08-05 19:12:32 +02:00
parent 610061838a
commit a4550de434
1 changed files with 33 additions and 4 deletions

View File

@ -359,6 +359,31 @@ static const char *interpStr[16] =
"samp sc"
};
static const char *texMaskStr[16] =
{
"____",
"r___",
"_g__",
"rg__",
"__b_",
"r_b_",
"_gb_",
"rgb_",
"___a",
"r__a",
"_g_a",
"rg_a",
"__ba",
"r_ba",
"_gba",
"rgba",
};
static const char *gatherCompStr[4] =
{
"r", "g", "b", "a",
};
#define PRINT(args...) \
do { \
pos += snprintf(&buf[pos], size - pos, args); \
@ -651,10 +676,14 @@ void Instruction::print() const
}
if (perPatch)
PRINT("patch ");
if (asTex())
PRINT("%s %s$r%u $s%u %s", asTex()->tex.target.getName(),
colour[TXT_MEM], asTex()->tex.r, asTex()->tex.s,
colour[TXT_INSN]);
if (asTex()) {
PRINT("%s %s$r%u $s%u ", asTex()->tex.target.getName(),
colour[TXT_MEM], asTex()->tex.r, asTex()->tex.s);
if (op == OP_TXG)
PRINT("%s ", gatherCompStr[asTex()->tex.gatherComp]);
PRINT("%s %s", texMaskStr[asTex()->tex.mask], colour[TXT_INSN]);
}
if (postFactor)
PRINT("x2^%i ", postFactor);
PRINT("%s%s", dnz ? "dnz " : (ftz ? "ftz " : ""), DataTypeStr[dType]);