Mesa (master): intel/disasm: Properly disassemble indirect SENDs
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Fri Jan 24 19:35:16 UTC 2020
Module: Mesa
Branch: master
Commit: 98aab272a820ed4b426d7cdfe82599ea8a635246
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=98aab272a820ed4b426d7cdfe82599ea8a635246
Author: Jason Ekstrand <jason at jlekstrand.net>
Date: Thu Jan 23 21:57:03 2020 -0600
intel/disasm: Properly disassemble indirect SENDs
Instead of emitting g[a0]UD for the indirect descriptor, emit a0<0>UD.
This is more correct because there is no GRF involved.
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3547>
---
src/intel/compiler/brw_disasm.c | 19 ++++++++++++++++---
1 file changed, 16 insertions(+), 3 deletions(-)
diff --git a/src/intel/compiler/brw_disasm.c b/src/intel/compiler/brw_disasm.c
index e3e9b509f1b..57aa9e51091 100644
--- a/src/intel/compiler/brw_disasm.c
+++ b/src/intel/compiler/brw_disasm.c
@@ -1443,6 +1443,19 @@ src_sends_ia(FILE *file,
return 0;
}
+static int
+src_send_desc_ia(FILE *file,
+ const struct gen_device_info *devinfo,
+ unsigned _addr_subreg_nr)
+{
+ string(file, "a0");
+ if (_addr_subreg_nr)
+ format(file, ".%d", _addr_subreg_nr);
+ format(file, "<0>UD");
+
+ return 0;
+}
+
static int
src0(FILE *file, const struct gen_device_info *devinfo, const brw_inst *inst)
{
@@ -1786,7 +1799,7 @@ brw_disassemble_inst(FILE *file, const struct gen_device_info *devinfo,
pad(file, 64);
if (brw_inst_send_sel_reg32_desc(devinfo, inst)) {
/* show the indirect descriptor source */
- err |= src_sends_ia(file, devinfo, BRW_REGISTER_TYPE_UD, 0, 0);
+ err |= src_send_desc_ia(file, devinfo, 0);
} else {
has_imm_desc = true;
imm_desc = brw_inst_send_desc(devinfo, inst);
@@ -1796,8 +1809,8 @@ brw_disassemble_inst(FILE *file, const struct gen_device_info *devinfo,
pad(file, 80);
if (brw_inst_send_sel_reg32_ex_desc(devinfo, inst)) {
/* show the indirect descriptor source */
- err |= src_sends_ia(file, devinfo, BRW_REGISTER_TYPE_UD, 0,
- brw_inst_send_ex_desc_ia_subreg_nr(devinfo, inst));
+ err |= src_send_desc_ia(file, devinfo,
+ brw_inst_send_ex_desc_ia_subreg_nr(devinfo, inst));
} else {
has_imm_ex_desc = true;
imm_ex_desc = brw_inst_sends_ex_desc(devinfo, inst);
More information about the mesa-commit
mailing list