Lines Matching refs:fp
76 static void dump_header(FILE *fp, struct bifrost_header header, bool verbose) in dump_header() argument
78 fprintf(fp, "ds(%du) ", header.dependency_slot); in dump_header()
81 fprintf(fp, "osrb "); in dump_header()
83 fprintf(fp, "%s ", bi_flow_control_name(header.flow_control)); in dump_header()
86 fprintf(fp, "inf_suppress "); in dump_header()
88 fprintf(fp, "nan_suppress "); in dump_header()
91 fprintf(fp, "ftz_dx11 "); in dump_header()
93 fprintf(fp, "ftz_hsa "); in dump_header()
95 fprintf(fp, "ftz_au "); in dump_header()
101 fprintf(fp, "fpe_ts "); in dump_header()
103 fprintf(fp, "fpe_pd "); in dump_header()
105 fprintf(fp, "fpe_psqr "); in dump_header()
108 fprintf(fp, "%s ", bi_message_type_name(header.message_type)); in dump_header()
111 fprintf(fp, "td "); in dump_header()
114 fprintf(fp, "ncph "); in dump_header()
117 fprintf(fp, "next_%s ", bi_message_type_name(header.next_message_type)); in dump_header()
119 fprintf(fp, "dwb("); in dump_header()
124 fprintf(fp, ", "); in dump_header()
126 fprintf(fp, "%d", i); in dump_header()
130 fprintf(fp, ") "); in dump_header()
133 fprintf(fp, "\n"); in dump_header()
136 static struct bifrost_reg_ctrl DecodeRegCtrl(FILE *fp, struct bifrost_regs regs, bool first) in DecodeRegCtrl() argument
162 static void dump_regs(FILE *fp, struct bifrost_regs srcs, bool first) in dump_regs() argument
164 struct bifrost_reg_ctrl ctrl = DecodeRegCtrl(fp, srcs, first); in dump_regs()
165 fprintf(fp, "# "); in dump_regs()
167 fprintf(fp, "slot 0: r%d ", get_reg0(srcs)); in dump_regs()
169 fprintf(fp, "slot 1: r%d ", get_reg1(srcs)); in dump_regs()
174 fprintf(fp, "slot 2: r%d (write FMA) ", srcs.reg2); in dump_regs()
176 fprintf(fp, "slot 2: r%d (write lo FMA) ", srcs.reg2); in dump_regs()
178 fprintf(fp, "slot 2: r%d (write hi FMA) ", srcs.reg2); in dump_regs()
180 fprintf(fp, "slot 2: r%d (read) ", srcs.reg2); in dump_regs()
183 fprintf(fp, "slot 3: r%d (write %s) ", srcs.reg3, slot3_fma); in dump_regs()
185 fprintf(fp, "slot 3: r%d (write lo %s) ", srcs.reg3, slot3_fma); in dump_regs()
187 fprintf(fp, "slot 3: r%d (write hi %s) ", srcs.reg3, slot3_fma); in dump_regs()
191 fprintf(fp, "uniform: u%d", (srcs.fau_idx & 0x7f) * 2); in dump_regs()
195 fprintf(fp, "\n"); in dump_regs()
199 bi_disasm_dest_mask(FILE *fp, enum bifrost_reg_op op) in bi_disasm_dest_mask() argument
202 fprintf(fp, ".h0"); in bi_disasm_dest_mask()
204 fprintf(fp, ".h1"); in bi_disasm_dest_mask()
208 bi_disasm_dest_fma(FILE *fp, struct bifrost_regs *next_regs, bool last) in bi_disasm_dest_fma() argument
211 struct bifrost_reg_ctrl ctrl = DecodeRegCtrl(fp, *next_regs, last); in bi_disasm_dest_fma()
213 fprintf(fp, "r%u:t0", next_regs->reg2); in bi_disasm_dest_fma()
214 bi_disasm_dest_mask(fp, ctrl.slot23.slot2); in bi_disasm_dest_fma()
216 fprintf(fp, "r%u:t0", next_regs->reg3); in bi_disasm_dest_fma()
217 bi_disasm_dest_mask(fp, ctrl.slot23.slot3); in bi_disasm_dest_fma()
219 fprintf(fp, "t0"); in bi_disasm_dest_fma()
223 bi_disasm_dest_add(FILE *fp, struct bifrost_regs *next_regs, bool last) in bi_disasm_dest_add() argument
226 struct bifrost_reg_ctrl ctrl = DecodeRegCtrl(fp, *next_regs, last); in bi_disasm_dest_add()
229 fprintf(fp, "r%u:t1", next_regs->reg3); in bi_disasm_dest_add()
230 bi_disasm_dest_mask(fp, ctrl.slot23.slot3); in bi_disasm_dest_add()
232 fprintf(fp, "t1"); in bi_disasm_dest_add()
235 static void dump_const_imm(FILE *fp, uint32_t imm) in dump_const_imm() argument
242 fprintf(fp, "0x%08x /* %f */", imm, fi.f); in dump_const_imm()
246 dump_pc_imm(FILE *fp, uint64_t imm, enum bi_constmod mod, bool high32) in dump_pc_imm() argument
262 fprintf(fp, "(pc + %" PRId64 ")%s", in dump_pc_imm()
268 fprintf(fp, "(pc + %d)", sx32[1]); in dump_pc_imm()
270 dump_const_imm(fp, imm); in dump_pc_imm()
273 fprintf(fp, "(pc + %d)", sx32[high32]); in dump_pc_imm()
294 static void dump_fau_src(FILE *fp, struct bifrost_regs srcs, struct bi_constants *consts, bool high… in dump_fau_src() argument
298 fprintf(fp, "u%d.w%d", uniform, high32); in dump_fau_src()
304 dump_pc_imm(fp, imm, consts->mods[idx], high32); in dump_fau_src()
306 dump_const_imm(fp, imm >> 32); in dump_fau_src()
308 dump_const_imm(fp, imm); in dump_fau_src()
312 fprintf(fp, "#0"); in dump_fau_src()
315 fprintf(fp, "lane_id"); in dump_fau_src()
318 fprintf(fp, "warp_id"); in dump_fau_src()
321 fprintf(fp, "core_id"); in dump_fau_src()
324 fprintf(fp, "framebuffer_size"); in dump_fau_src()
327 fprintf(fp, "atest_datum"); in dump_fau_src()
330 fprintf(fp, "sample"); in dump_fau_src()
340 fprintf(fp, "blend_descriptor_%u", (unsigned) srcs.fau_idx - 8); in dump_fau_src()
343 fprintf(fp, "XXX - reserved%u", (unsigned) srcs.fau_idx); in dump_fau_src()
348 fprintf(fp, ".y"); in dump_fau_src()
350 fprintf(fp, ".x"); in dump_fau_src()
355 dump_src(FILE *fp, unsigned src, struct bifrost_regs srcs, struct bi_constants *consts, bool isFMA) in dump_src() argument
359 fprintf(fp, "r%d", get_reg0(srcs)); in dump_src()
362 fprintf(fp, "r%d", get_reg1(srcs)); in dump_src()
365 fprintf(fp, "r%d", srcs.reg2); in dump_src()
369 fprintf(fp, "#0"); in dump_src()
371 fprintf(fp, "t"); // i.e. the output of FMA this cycle in dump_src()
374 dump_fau_src(fp, srcs, consts, false); in dump_src()
377 dump_fau_src(fp, srcs, consts, true); in dump_src()
380 fprintf(fp, "t0"); in dump_src()
383 fprintf(fp, "t1"); in dump_src()
431 static bool dump_clause(FILE *fp, uint32_t *words, unsigned *size, unsigned offset, bool verbose) in dump_clause() argument
444 fprintf(fp, "# "); in dump_clause()
446 fprintf(fp, "%08x ", words[3 - j]); // low bit on the right in dump_clause()
447 fprintf(fp, "\n"); in dump_clause()
467 fprintf(fp, "# tag: 0x%02x\n", tag); in dump_clause()
606 fprintf(fp, "# unknown pos 0x%x\n", pos); in dump_clause()
644 fprintf(fp, "# header: %012" PRIx64 "\n", header_bits); in dump_clause()
649 dump_header(fp, header, verbose); in dump_clause()
653 fprintf(fp, "{\n"); in dump_clause()
667 fprintf(fp, "# regs: %016" PRIx64 "\n", instrs[i].reg_bits); in dump_clause()
668 dump_regs(fp, regs, i == 0); in dump_clause()
671 bi_disasm_fma(fp, instrs[i].fma_bits, ®s, &next_regs, in dump_clause()
675 bi_disasm_add(fp, instrs[i].add_bits, ®s, &next_regs, in dump_clause()
679 fprintf(fp, "}\n"); in dump_clause()
683 … fprintf(fp, "# const%d: %08" PRIx64 "\n", 2 * i, consts.raw[i] & 0xffffffff); in dump_clause()
684 fprintf(fp, "# const%d: %08" PRIx64 "\n", 2 * i + 1, consts.raw[i] >> 32); in dump_clause()
690 void disassemble_bifrost(FILE *fp, uint8_t *code, size_t size, bool verbose) in disassemble_bifrost() argument
702 fprintf(fp, "clause_%d:\n", offset); in disassemble_bifrost()
704 if (dump_clause(fp, words, &size, offset, verbose) == true) { in disassemble_bifrost()