mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 16:08:04 +02:00
freedreno/ir3: Refactor cat6 general dst printing.
We didn't need the extra branch and temp, we can move it inside of the dst handling by just duplicating the print of the dst reg. Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5815>
This commit is contained in:
parent
62dcf75432
commit
d6d8dc133e
1 changed files with 18 additions and 17 deletions
|
|
@ -681,7 +681,7 @@ static void print_instr_cat6_a3xx(struct disasm_ctx *ctx, instr_t *instr)
|
|||
char sd = 0, ss = 0; /* dst/src address space */
|
||||
bool nodst = false;
|
||||
struct reginfo dst, src1, src2, ssbo;
|
||||
int src1off = 0, dstoff = 0;
|
||||
int src1off = 0;
|
||||
|
||||
memset(&dst, 0, sizeof(dst));
|
||||
memset(&src1, 0, sizeof(src1));
|
||||
|
|
@ -936,12 +936,6 @@ static void print_instr_cat6_a3xx(struct disasm_ctx *ctx, instr_t *instr)
|
|||
|
||||
return;
|
||||
}
|
||||
if (cat6->dst_off) {
|
||||
dst.reg = (reg_t)(cat6->c.dst);
|
||||
dstoff = cat6->c.off;
|
||||
} else {
|
||||
dst.reg = (reg_t)(cat6->d.dst);
|
||||
}
|
||||
|
||||
if (cat6->src_off) {
|
||||
src1.reg = (reg_t)(cat6->a.src1);
|
||||
|
|
@ -960,16 +954,23 @@ static void print_instr_cat6_a3xx(struct disasm_ctx *ctx, instr_t *instr)
|
|||
if (sd)
|
||||
fprintf(ctx->out, "%c[", sd);
|
||||
/* note: dst might actually be a src (ie. address to store to) */
|
||||
print_src(ctx, &dst);
|
||||
if (cat6->dst_off && cat6->g) {
|
||||
struct reginfo dstoff_reg = {
|
||||
.reg = (reg_t) cat6->c.off,
|
||||
.full = true
|
||||
};
|
||||
fprintf(ctx->out, "+");
|
||||
print_src(ctx, &dstoff_reg);
|
||||
} else if (dstoff)
|
||||
fprintf(ctx->out, "%+d", dstoff);
|
||||
if (cat6->dst_off) {
|
||||
dst.reg = (reg_t)(cat6->c.dst);
|
||||
print_src(ctx, &dst);
|
||||
if (cat6->g) {
|
||||
struct reginfo dstoff_reg = {
|
||||
.reg = (reg_t) cat6->c.off,
|
||||
.full = true
|
||||
};
|
||||
fprintf(ctx->out, "+");
|
||||
print_src(ctx, &dstoff_reg);
|
||||
} else if (cat6->c.off) {
|
||||
fprintf(ctx->out, "%+d", cat6->c.off);
|
||||
}
|
||||
} else {
|
||||
dst.reg = (reg_t)(cat6->d.dst);
|
||||
print_src(ctx, &dst);
|
||||
}
|
||||
if (sd)
|
||||
fprintf(ctx->out, "]");
|
||||
fprintf(ctx->out, ", ");
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue