pan/bi: Fix destination printing
It should get the same treatment as sources to handle SSA/reg/etc. Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4097>
This commit is contained in:
parent
65c8dcca3b
commit
806533ba7f
|
@ -139,6 +139,25 @@ bi_class_name(enum bi_class cl)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
bi_print_index(FILE *fp, bi_instruction *ins, unsigned index)
|
||||||
|
{
|
||||||
|
if (!index)
|
||||||
|
fprintf(fp, "_");
|
||||||
|
else if (index & BIR_INDEX_REGISTER)
|
||||||
|
fprintf(fp, "br%u", index & ~BIR_INDEX_REGISTER);
|
||||||
|
else if (index & BIR_INDEX_UNIFORM)
|
||||||
|
fprintf(fp, "u%u", index & ~BIR_INDEX_UNIFORM);
|
||||||
|
else if (index & BIR_INDEX_CONSTANT)
|
||||||
|
fprintf(fp, "#0x%" PRIx64, ins->constant.u64);
|
||||||
|
else if (index & BIR_INDEX_ZERO)
|
||||||
|
fprintf(fp, "#0");
|
||||||
|
else if (index & BIR_IS_REG)
|
||||||
|
fprintf(fp, "r%u", index >> 1);
|
||||||
|
else
|
||||||
|
fprintf(fp, "%u", (index >> 1) - 1);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
bi_print_src(FILE *fp, bi_instruction *ins, unsigned s)
|
bi_print_src(FILE *fp, bi_instruction *ins, unsigned s)
|
||||||
{
|
{
|
||||||
|
@ -153,20 +172,7 @@ bi_print_src(FILE *fp, bi_instruction *ins, unsigned s)
|
||||||
if (abs)
|
if (abs)
|
||||||
fprintf(fp, "abs(");
|
fprintf(fp, "abs(");
|
||||||
|
|
||||||
if (!src)
|
bi_print_index(fp, ins, src);
|
||||||
fprintf(fp, "_");
|
|
||||||
else if (src & BIR_INDEX_REGISTER)
|
|
||||||
fprintf(fp, "br%u", src & ~BIR_INDEX_REGISTER);
|
|
||||||
else if (src & BIR_INDEX_UNIFORM)
|
|
||||||
fprintf(fp, "u%u", src & ~BIR_INDEX_UNIFORM);
|
|
||||||
else if (src & BIR_INDEX_CONSTANT)
|
|
||||||
fprintf(fp, "#0x%" PRIx64, ins->constant.u64);
|
|
||||||
else if (src & BIR_INDEX_ZERO)
|
|
||||||
fprintf(fp, "#0");
|
|
||||||
else if (src & BIR_IS_REG)
|
|
||||||
fprintf(fp, "r%u", src >> 1);
|
|
||||||
else
|
|
||||||
fprintf(fp, "%u", (src >> 1) - 1);
|
|
||||||
|
|
||||||
if (abs)
|
if (abs)
|
||||||
fprintf(fp, ")");
|
fprintf(fp, ")");
|
||||||
|
@ -303,12 +309,7 @@ bi_print_instruction(bi_instruction *ins, FILE *fp)
|
||||||
fprintf(fp, "%s", bi_round_mode_name(ins->roundmode));
|
fprintf(fp, "%s", bi_round_mode_name(ins->roundmode));
|
||||||
|
|
||||||
fprintf(fp, " ");
|
fprintf(fp, " ");
|
||||||
|
bi_print_index(fp, ins, ins->dest);
|
||||||
if (ins->dest)
|
|
||||||
fprintf(fp, "%d", ins->dest);
|
|
||||||
else
|
|
||||||
fprintf(fp, "_");
|
|
||||||
|
|
||||||
fprintf(fp, ", ");
|
fprintf(fp, ", ");
|
||||||
|
|
||||||
bi_foreach_src(ins, s) {
|
bi_foreach_src(ins, s) {
|
||||||
|
|
Loading…
Reference in New Issue