diff --git a/src/panfrost/bifrost/disassemble.c b/src/panfrost/bifrost/disassemble.c index 20a047ec4b5..437ed730a28 100644 --- a/src/panfrost/bifrost/disassemble.c +++ b/src/panfrost/bifrost/disassemble.c @@ -308,6 +308,27 @@ static void dump_regs(FILE *fp, struct bifrost_regs srcs) fprintf(fp, "\n"); } + +void +bi_disasm_dest_fma(FILE *fp, struct bifrost_regs *next_regs) +{ + struct bifrost_reg_ctrl next_ctrl = DecodeRegCtrl(fp, *next_regs); + if (next_ctrl.fma_write_unit != REG_WRITE_NONE) + fprintf(fp, "r%u:t0", GetRegToWrite(next_ctrl.fma_write_unit, *next_regs)); + else + fprintf(fp, "t0"); +} + +void +bi_disasm_dest_add(FILE *fp, struct bifrost_regs *next_regs) +{ + struct bifrost_reg_ctrl next_ctrl = DecodeRegCtrl(fp, *next_regs); + if (next_ctrl.add_write_unit != REG_WRITE_NONE) + fprintf(fp, "r%u:t1", GetRegToWrite(next_ctrl.add_write_unit, *next_regs)); + else + fprintf(fp, "t1"); +} + static void dump_const_imm(FILE *fp, uint32_t imm) { union { diff --git a/src/panfrost/bifrost/disassemble.h b/src/panfrost/bifrost/disassemble.h index dd5b38dd319..0f7ed5000d2 100644 --- a/src/panfrost/bifrost/disassemble.h +++ b/src/panfrost/bifrost/disassemble.h @@ -39,4 +39,7 @@ bi_disasm_fma(FILE *fp, unsigned bits, struct bifrost_regs *srcs, struct bifrost void bi_disasm_add(FILE *fp, unsigned bits, struct bifrost_regs *srcs, struct bifrost_regs *next_regs, unsigned staging_register, unsigned branch_offset, uint64_t *consts); +void bi_disasm_dest_fma(FILE *fp, struct bifrost_regs *next_regs); +void bi_disasm_dest_add(FILE *fp, struct bifrost_regs *next_regs); + #endif