intel/disasm: Print src1_len correctly depending on ExDesc type
There are two "Src1.Length" with different formats in "send" description in the PRMs. One is part of ExMsgDesc, is relevant for LSC SFIDs, and exists if [ExDesc.IsReg]==false. The other is just a 5-bit immediate, is relevant for other SFIDs too, and exists if ([ExDesc.IsReg]==true) AND ([ExBSO]==true). Signed-off-by: Sviatoslav Peleshko <sviatoslav.peleshko@globallogic.com> Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25657>
This commit is contained in:
committed by
Marge Bot
parent
b5c0b90402
commit
173a991405
@@ -2537,7 +2537,11 @@ brw_disassemble_inst(FILE *file, const struct brw_isa_info *isa,
|
||||
}
|
||||
format(file, " dst_len = %u,", lsc_msg_desc_dest_len(devinfo, imm_desc));
|
||||
format(file, " src0_len = %u,", lsc_msg_desc_src0_len(devinfo, imm_desc));
|
||||
format(file, " src1_len = %d", brw_message_ex_desc_ex_mlen(devinfo, imm_ex_desc));
|
||||
|
||||
if (!brw_inst_send_sel_reg32_ex_desc(devinfo, inst))
|
||||
format(file, " src1_len = %d",
|
||||
brw_message_ex_desc_ex_mlen(devinfo, imm_ex_desc));
|
||||
|
||||
err |= control(file, "address_type", lsc_addr_surface_type,
|
||||
lsc_msg_desc_addr_type(devinfo, imm_desc), &space);
|
||||
format(file, " )");
|
||||
@@ -2672,8 +2676,14 @@ brw_disassemble_inst(FILE *file, const struct brw_isa_info *isa,
|
||||
if (space)
|
||||
string(file, " ");
|
||||
}
|
||||
if (devinfo->verx10 >= 125 && brw_inst_send_ex_bso(devinfo, inst))
|
||||
if (devinfo->verx10 >= 125 &&
|
||||
brw_inst_send_sel_reg32_ex_desc(devinfo, inst) &&
|
||||
brw_inst_send_ex_bso(devinfo, inst)) {
|
||||
format(file, " src1_len = %u",
|
||||
(unsigned) brw_inst_send_src1_len(devinfo, inst));
|
||||
|
||||
format(file, " ex_bso");
|
||||
}
|
||||
if (brw_sfid_is_lsc(sfid)) {
|
||||
lsc_disassemble_ex_desc(devinfo, imm_desc, imm_ex_desc, file);
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user