Lines Matching refs:devinfo

36 brw_has_jip(const struct intel_device_info *devinfo, enum opcode opcode)
38 if (devinfo->ver < 6)
51 brw_has_uip(const struct intel_device_info *devinfo, enum opcode opcode)
53 if (devinfo->ver < 6)
56 return (devinfo->ver >= 7 && opcode == BRW_OPCODE_IF) ||
57 (devinfo->ver >= 8 && opcode == BRW_OPCODE_ELSE) ||
64 has_branch_ctrl(const struct intel_device_info *devinfo, enum opcode opcode)
66 if (devinfo->ver < 8)
93 is_split_send(UNUSED const struct intel_device_info *devinfo, unsigned opcode)
95 if (devinfo->ver >= 12)
397 dp_rc_msg_type(const struct intel_device_info *devinfo)
399 return (devinfo->ver >= 9 ? dp_rc_msg_type_gfx9 :
400 devinfo->ver >= 7 ? dp_rc_msg_type_gfx7 :
401 devinfo->ver >= 6 ? dp_rc_msg_type_gfx6 :
816 print_opcode(FILE *file, const struct intel_device_info *devinfo,
819 const struct opcode_desc *desc = brw_opcode_desc(devinfo, id);
891 dest(FILE *file, const struct intel_device_info *devinfo, const brw_inst *inst)
893 enum brw_reg_type type = brw_inst_dst_type(devinfo, inst);
897 if (is_split_send(devinfo, brw_inst_opcode(devinfo, inst))) {
901 if (devinfo->ver >= 12) {
902 err |= reg(file, brw_inst_send_dst_reg_file(devinfo, inst),
903 brw_inst_dst_da_reg_nr(devinfo, inst));
905 } else if (brw_inst_dst_address_mode(devinfo, inst) == BRW_ADDRESS_DIRECT) {
906 err |= reg(file, brw_inst_send_dst_reg_file(devinfo, inst),
907 brw_inst_dst_da_reg_nr(devinfo, inst));
908 unsigned subreg_nr = brw_inst_dst_da16_subreg_nr(devinfo, inst);
914 if (brw_inst_dst_ia_subreg_nr(devinfo, inst))
915 format(file, ".%"PRIu64, brw_inst_dst_ia_subreg_nr(devinfo, inst) /
917 if (brw_inst_send_dst_ia16_addr_imm(devinfo, inst))
918 format(file, " %d", brw_inst_send_dst_ia16_addr_imm(devinfo, inst));
922 } else if (brw_inst_access_mode(devinfo, inst) == BRW_ALIGN_1) {
923 if (brw_inst_dst_address_mode(devinfo, inst) == BRW_ADDRESS_DIRECT) {
924 err |= reg(file, brw_inst_dst_reg_file(devinfo, inst),
925 brw_inst_dst_da_reg_nr(devinfo, inst));
928 if (brw_inst_dst_da1_subreg_nr(devinfo, inst))
929 format(file, ".%"PRIu64, brw_inst_dst_da1_subreg_nr(devinfo, inst) /
933 brw_inst_dst_hstride(devinfo, inst), NULL);
938 if (brw_inst_dst_ia_subreg_nr(devinfo, inst))
939 format(file, ".%"PRIu64, brw_inst_dst_ia_subreg_nr(devinfo, inst) /
941 if (brw_inst_dst_ia1_addr_imm(devinfo, inst))
942 format(file, " %d", brw_inst_dst_ia1_addr_imm(devinfo, inst));
945 brw_inst_dst_hstride(devinfo, inst), NULL);
950 if (brw_inst_dst_address_mode(devinfo, inst) == BRW_ADDRESS_DIRECT) {
951 err |= reg(file, brw_inst_dst_reg_file(devinfo, inst),
952 brw_inst_dst_da_reg_nr(devinfo, inst));
955 if (brw_inst_dst_da16_subreg_nr(devinfo, inst))
959 brw_inst_da16_writemask(devinfo, inst), NULL);
971 dest_3src(FILE *file, const struct intel_device_info *devinfo,
974 bool is_align1 = brw_inst_3src_access_mode(devinfo, inst) == BRW_ALIGN_1;
980 if (devinfo->ver < 10 && is_align1)
983 if (devinfo->ver == 6 && brw_inst_3src_a16_dst_reg_file(devinfo, inst))
985 else if (devinfo->ver >= 12)
986 reg_file = brw_inst_3src_a1_dst_reg_file(devinfo, inst);
987 else if (is_align1 && brw_inst_3src_a1_dst_reg_file(devinfo, inst))
992 err |= reg(file, reg_file, brw_inst_3src_dst_reg_nr(devinfo, inst));
997 type = brw_inst_3src_a1_dst_type(devinfo, inst);
998 subreg_nr = brw_inst_3src_a1_dst_subreg_nr(devinfo, inst);
1000 type = brw_inst_3src_a16_dst_type(devinfo, inst);
1001 subreg_nr = brw_inst_3src_a16_dst_subreg_nr(devinfo, inst) * 4;
1011 brw_inst_3src_a16_dst_writemask(devinfo, inst), NULL);
1036 const struct intel_device_info *devinfo,
1045 if (devinfo->ver >= 8 && is_logic_instruction(opcode))
1066 const struct intel_device_info *devinfo,
1077 if (devinfo->ver >= 8 && is_logic_instruction(opcode))
1119 const struct intel_device_info *devinfo,
1132 if (devinfo->ver >= 8 && is_logic_instruction(opcode))
1158 vstride_from_align1_3src_vstride(const struct intel_device_info *devinfo,
1164 if (devinfo->ver >= 12)
1243 src0_3src(FILE *file, const struct intel_device_info *devinfo,
1254 bool is_align1 = brw_inst_3src_access_mode(devinfo, inst) == BRW_ALIGN_1;
1256 if (devinfo->ver < 10 && is_align1)
1260 if (devinfo->ver >= 12 && !brw_inst_3src_a1_src0_is_imm(devinfo, inst)) {
1261 _file = brw_inst_3src_a1_src0_reg_file(devinfo, inst);
1262 } else if (brw_inst_3src_a1_src0_reg_file(devinfo, inst) ==
1265 } else if (brw_inst_3src_a1_src0_type(devinfo, inst) ==
1270 uint16_t imm_val = brw_inst_3src_a1_src0_imm(devinfo, inst);
1271 enum brw_reg_type type = brw_inst_3src_a1_src0_type(devinfo, inst);
1283 reg_nr = brw_inst_3src_src0_reg_nr(devinfo, inst);
1284 subreg_nr = brw_inst_3src_a1_src0_subreg_nr(devinfo, inst);
1285 type = brw_inst_3src_a1_src0_type(devinfo, inst);
1287 devinfo, brw_inst_3src_a1_src0_vstride(devinfo, inst));
1289 brw_inst_3src_a1_src0_hstride(devinfo, inst));
1293 reg_nr = brw_inst_3src_src0_reg_nr(devinfo, inst);
1294 subreg_nr = brw_inst_3src_a16_src0_subreg_nr(devinfo, inst) * 4;
1295 type = brw_inst_3src_a16_src_type(devinfo, inst);
1297 if (brw_inst_3src_a16_src0_rep_ctrl(devinfo, inst)) {
1314 brw_inst_3src_src0_negate(devinfo, inst), NULL);
1315 err |= control(file, "abs", _abs, brw_inst_3src_src0_abs(devinfo, inst), NULL);
1324 err |= src_swizzle(file, brw_inst_3src_a16_src0_swizzle(devinfo, inst));
1330 src1_3src(FILE *file, const struct intel_device_info *devinfo,
1341 bool is_align1 = brw_inst_3src_access_mode(devinfo, inst) == BRW_ALIGN_1;
1343 if (devinfo->ver < 10 && is_align1)
1347 if (devinfo->ver >= 12) {
1348 _file = brw_inst_3src_a1_src1_reg_file(devinfo, inst);
1349 } else if (brw_inst_3src_a1_src1_reg_file(devinfo, inst) ==
1356 reg_nr = brw_inst_3src_src1_reg_nr(devinfo, inst);
1357 subreg_nr = brw_inst_3src_a1_src1_subreg_nr(devinfo, inst);
1358 type = brw_inst_3src_a1_src1_type(devinfo, inst);
1361 devinfo, brw_inst_3src_a1_src1_vstride(devinfo, inst));
1363 brw_inst_3src_a1_src1_hstride(devinfo, inst));
1367 reg_nr = brw_inst_3src_src1_reg_nr(devinfo, inst);
1368 subreg_nr = brw_inst_3src_a16_src1_subreg_nr(devinfo, inst) * 4;
1369 type = brw_inst_3src_a16_src_type(devinfo, inst);
1371 if (brw_inst_3src_a16_src1_rep_ctrl(devinfo, inst)) {
1388 brw_inst_3src_src1_negate(devinfo, inst), NULL);
1389 err |= control(file, "abs", _abs, brw_inst_3src_src1_abs(devinfo, inst), NULL);
1398 err |= src_swizzle(file, brw_inst_3src_a16_src1_swizzle(devinfo, inst));
1404 src2_3src(FILE *file, const struct intel_device_info *devinfo,
1415 bool is_align1 = brw_inst_3src_access_mode(devinfo, inst) == BRW_ALIGN_1;
1417 if (devinfo->ver < 10 && is_align1)
1421 if (devinfo->ver >= 12 && !brw_inst_3src_a1_src2_is_imm(devinfo, inst)) {
1422 _file = brw_inst_3src_a1_src2_reg_file(devinfo, inst);
1423 } else if (brw_inst_3src_a1_src2_reg_file(devinfo, inst) ==
1428 uint16_t imm_val = brw_inst_3src_a1_src2_imm(devinfo, inst);
1429 enum brw_reg_type type = brw_inst_3src_a1_src2_type(devinfo, inst);
1441 reg_nr = brw_inst_3src_src2_reg_nr(devinfo, inst);
1442 subreg_nr = brw_inst_3src_a1_src2_subreg_nr(devinfo, inst);
1443 type = brw_inst_3src_a1_src2_type(devinfo, inst);
1449 brw_inst_3src_a1_src2_hstride(devinfo, inst));
1451 brw_inst_3src_a1_src2_hstride(devinfo, inst));
1455 reg_nr = brw_inst_3src_src2_reg_nr(devinfo, inst);
1456 subreg_nr = brw_inst_3src_a16_src2_subreg_nr(devinfo, inst) * 4;
1457 type = brw_inst_3src_a16_src_type(devinfo, inst);
1459 if (brw_inst_3src_a16_src2_rep_ctrl(devinfo, inst)) {
1476 brw_inst_3src_src2_negate(devinfo, inst), NULL);
1477 err |= control(file, "abs", _abs, brw_inst_3src_src2_abs(devinfo, inst), NULL);
1486 err |= src_swizzle(file, brw_inst_3src_a16_src2_swizzle(devinfo, inst));
1492 imm(FILE *file, const struct intel_device_info *devinfo, enum brw_reg_type type,
1497 format(file, "0x%016"PRIx64"UQ", brw_inst_imm_uq(devinfo, inst));
1500 format(file, "0x%016"PRIx64"Q", brw_inst_imm_uq(devinfo, inst));
1503 format(file, "0x%08xUD", brw_inst_imm_ud(devinfo, inst));
1506 format(file, "%dD", brw_inst_imm_d(devinfo, inst));
1509 format(file, "0x%04xUW", (uint16_t) brw_inst_imm_ud(devinfo, inst));
1512 format(file, "%dW", (int16_t) brw_inst_imm_d(devinfo, inst));
1515 format(file, "0x%08xUV", brw_inst_imm_ud(devinfo, inst));
1521 brw_vf_to_float(brw_inst_imm_ud(devinfo, inst)),
1522 brw_vf_to_float(brw_inst_imm_ud(devinfo, inst) >> 8),
1523 brw_vf_to_float(brw_inst_imm_ud(devinfo, inst) >> 16),
1524 brw_vf_to_float(brw_inst_imm_ud(devinfo, inst) >> 24));
1527 format(file, "0x%08xV", brw_inst_imm_ud(devinfo, inst));
1533 if (brw_inst_opcode(devinfo, inst) == BRW_OPCODE_DIM) {
1536 format(file, "/* %-gF */", brw_inst_imm_df(devinfo, inst));
1540 format(file, " /* %-gF */", brw_inst_imm_f(devinfo, inst));
1546 format(file, "/* %-gDF */", brw_inst_imm_df(devinfo, inst));
1561 const struct intel_device_info *devinfo,
1581 const struct intel_device_info *devinfo,
1599 const struct intel_device_info *devinfo,
1611 src0(FILE *file, const struct intel_device_info *devinfo, const brw_inst *inst)
1613 if (is_split_send(devinfo, brw_inst_opcode(devinfo, inst))) {
1614 if (devinfo->ver >= 12) {
1616 devinfo,
1618 brw_inst_send_src0_reg_file(devinfo, inst),
1619 brw_inst_src0_da_reg_nr(devinfo, inst),
1621 } else if (brw_inst_send_src0_address_mode(devinfo, inst) == BRW_ADDRESS_DIRECT) {
1623 devinfo,
1626 brw_inst_src0_da_reg_nr(devinfo, inst),
1627 brw_inst_src0_da16_subreg_nr(devinfo, inst));
1630 devinfo,
1632 brw_inst_send_src0_ia16_addr_imm(devinfo, inst),
1633 brw_inst_src0_ia_subreg_nr(devinfo, inst));
1635 } else if (brw_inst_src0_reg_file(devinfo, inst) == BRW_IMMEDIATE_VALUE) {
1636 return imm(file, devinfo, brw_inst_src0_type(devinfo, inst), inst);
1637 } else if (brw_inst_access_mode(devinfo, inst) == BRW_ALIGN_1) {
1638 if (brw_inst_src0_address_mode(devinfo, inst) == BRW_ADDRESS_DIRECT) {
1640 devinfo,
1641 brw_inst_opcode(devinfo, inst),
1642 brw_inst_src0_type(devinfo, inst),
1643 brw_inst_src0_reg_file(devinfo, inst),
1644 brw_inst_src0_vstride(devinfo, inst),
1645 brw_inst_src0_width(devinfo, inst),
1646 brw_inst_src0_hstride(devinfo, inst),
1647 brw_inst_src0_da_reg_nr(devinfo, inst),
1648 brw_inst_src0_da1_subreg_nr(devinfo, inst),
1649 brw_inst_src0_abs(devinfo, inst),
1650 brw_inst_src0_negate(devinfo, inst));
1653 devinfo,
1654 brw_inst_opcode(devinfo, inst),
1655 brw_inst_src0_type(devinfo, inst),
1656 brw_inst_src0_ia1_addr_imm(devinfo, inst),
1657 brw_inst_src0_ia_subreg_nr(devinfo, inst),
1658 brw_inst_src0_negate(devinfo, inst),
1659 brw_inst_src0_abs(devinfo, inst),
1660 brw_inst_src0_hstride(devinfo, inst),
1661 brw_inst_src0_width(devinfo, inst),
1662 brw_inst_src0_vstride(devinfo, inst));
1665 if (brw_inst_src0_address_mode(devinfo, inst) == BRW_ADDRESS_DIRECT) {
1667 devinfo,
1668 brw_inst_opcode(devinfo, inst),
1669 brw_inst_src0_type(devinfo, inst),
1670 brw_inst_src0_reg_file(devinfo, inst),
1671 brw_inst_src0_vstride(devinfo, inst),
1672 brw_inst_src0_da_reg_nr(devinfo, inst),
1673 brw_inst_src0_da16_subreg_nr(devinfo, inst),
1674 brw_inst_src0_abs(devinfo, inst),
1675 brw_inst_src0_negate(devinfo, inst),
1676 brw_inst_src0_da16_swiz_x(devinfo, inst),
1677 brw_inst_src0_da16_swiz_y(devinfo, inst),
1678 brw_inst_src0_da16_swiz_z(devinfo, inst),
1679 brw_inst_src0_da16_swiz_w(devinfo, inst));
1688 src1(FILE *file, const struct intel_device_info *devinfo, const brw_inst *inst)
1690 if (is_split_send(devinfo, brw_inst_opcode(devinfo, inst))) {
1692 devinfo,
1694 brw_inst_send_src1_reg_file(devinfo, inst),
1695 brw_inst_send_src1_reg_nr(devinfo, inst),
1697 } else if (brw_inst_src1_reg_file(devinfo, inst) == BRW_IMMEDIATE_VALUE) {
1698 return imm(file, devinfo, brw_inst_src1_type(devinfo, inst), inst);
1699 } else if (brw_inst_access_mode(devinfo, inst) == BRW_ALIGN_1) {
1700 if (brw_inst_src1_address_mode(devinfo, inst) == BRW_ADDRESS_DIRECT) {
1702 devinfo,
1703 brw_inst_opcode(devinfo, inst),
1704 brw_inst_src1_type(devinfo, inst),
1705 brw_inst_src1_reg_file(devinfo, inst),
1706 brw_inst_src1_vstride(devinfo, inst),
1707 brw_inst_src1_width(devinfo, inst),
1708 brw_inst_src1_hstride(devinfo, inst),
1709 brw_inst_src1_da_reg_nr(devinfo, inst),
1710 brw_inst_src1_da1_subreg_nr(devinfo, inst),
1711 brw_inst_src1_abs(devinfo, inst),
1712 brw_inst_src1_negate(devinfo, inst));
1715 devinfo,
1716 brw_inst_opcode(devinfo, inst),
1717 brw_inst_src1_type(devinfo, inst),
1718 brw_inst_src1_ia1_addr_imm(devinfo, inst),
1719 brw_inst_src1_ia_subreg_nr(devinfo, inst),
1720 brw_inst_src1_negate(devinfo, inst),
1721 brw_inst_src1_abs(devinfo, inst),
1722 brw_inst_src1_hstride(devinfo, inst),
1723 brw_inst_src1_width(devinfo, inst),
1724 brw_inst_src1_vstride(devinfo, inst));
1727 if (brw_inst_src1_address_mode(devinfo, inst) == BRW_ADDRESS_DIRECT) {
1729 devinfo,
1730 brw_inst_opcode(devinfo, inst),
1731 brw_inst_src1_type(devinfo, inst),
1732 brw_inst_src1_reg_file(devinfo, inst),
1733 brw_inst_src1_vstride(devinfo, inst),
1734 brw_inst_src1_da_reg_nr(devinfo, inst),
1735 brw_inst_src1_da16_subreg_nr(devinfo, inst),
1736 brw_inst_src1_abs(devinfo, inst),
1737 brw_inst_src1_negate(devinfo, inst),
1738 brw_inst_src1_da16_swiz_x(devinfo, inst),
1739 brw_inst_src1_da16_swiz_y(devinfo, inst),
1740 brw_inst_src1_da16_swiz_z(devinfo, inst),
1741 brw_inst_src1_da16_swiz_w(devinfo, inst));
1750 qtr_ctrl(FILE *file, const struct intel_device_info *devinfo,
1753 int qtr_ctl = brw_inst_qtr_control(devinfo, inst);
1754 int exec_size = 1 << brw_inst_exec_size(devinfo, inst);
1755 const unsigned nib_ctl = devinfo->ver < 7 ? 0 :
1756 brw_inst_nib_control(devinfo, inst);
1785 swsb(FILE *file, const struct intel_device_info *devinfo, const brw_inst *inst)
1787 const enum opcode opcode = brw_inst_opcode(devinfo, inst);
1788 const uint8_t x = brw_inst_swsb(devinfo, inst);
1789 const struct tgl_swsb swsb = tgl_swsb_decode(devinfo, opcode, x);
1806 brw_disassemble_imm(const struct intel_device_info *devinfo,
1812 return brw_disassemble_inst(stderr, devinfo, &inst, false, 0, NULL);
1817 write_label(FILE *file, const struct intel_device_info *devinfo,
1822 int to_bytes_scale = sizeof(brw_inst) / brw_jump_scale(devinfo);
1832 lsc_disassemble_ex_desc(const struct intel_device_info *devinfo,
1837 const unsigned addr_type = lsc_msg_desc_addr_type(devinfo, imm_desc);
1841 lsc_flat_ex_desc_base_offset(devinfo, imm_ex_desc));
1846 lsc_bss_ex_desc_index(devinfo, imm_ex_desc));
1850 lsc_bti_ex_desc_index(devinfo, imm_ex_desc));
1852 lsc_bti_ex_desc_base_offset(devinfo, imm_ex_desc));
1876 brw_disassemble_inst(FILE *file, const struct intel_device_info *devinfo,
1883 const enum opcode opcode = brw_inst_opcode(devinfo, inst);
1884 const struct opcode_desc *desc = brw_opcode_desc(devinfo, opcode);
1886 if (brw_inst_pred_control(devinfo, inst)) {
1889 brw_inst_pred_inv(devinfo, inst), NULL);
1891 devinfo->ver >= 7 ? brw_inst_flag_reg_nr(devinfo, inst) : 0,
1892 brw_inst_flag_subreg_nr(devinfo, inst));
1893 if (brw_inst_access_mode(devinfo, inst) == BRW_ALIGN_1) {
1895 brw_inst_pred_control(devinfo, inst), NULL);
1898 brw_inst_pred_control(devinfo, inst), NULL);
1903 err |= print_opcode(file, devinfo, opcode);
1906 err |= control(file, "saturate", saturate, brw_inst_saturate(devinfo, inst),
1910 brw_inst_debug_control(devinfo, inst), NULL);
1915 brw_inst_math_function(devinfo, inst), NULL);
1920 brw_inst_cond_modifier(devinfo, inst), NULL);
1924 brw_inst_cond_modifier(devinfo, inst), NULL);
1930 if (brw_inst_cond_modifier(devinfo, inst) &&
1931 (devinfo->ver < 6 || (opcode != BRW_OPCODE_SEL &&
1936 devinfo->ver >= 7 ? brw_inst_flag_reg_nr(devinfo, inst) : 0,
1937 brw_inst_flag_subreg_nr(devinfo, inst));
1944 brw_inst_exec_size(devinfo, inst), NULL);
1948 if (opcode == BRW_OPCODE_SEND && devinfo->ver < 6)
1949 format(file, " %"PRIu64, brw_inst_base_mrf(devinfo, inst));
1951 if (brw_has_uip(devinfo, opcode)) {
1955 write_label(file, devinfo, root_label, offset, brw_inst_jip(devinfo, inst));
1959 write_label(file, devinfo, root_label, offset, brw_inst_uip(devinfo, inst));
1960 } else if (brw_has_jip(devinfo, opcode)) {
1962 if (devinfo->ver >= 7) {
1963 jip = brw_inst_jip(devinfo, inst);
1965 jip = brw_inst_gfx6_jump_count(devinfo, inst);
1970 write_label(file, devinfo, root_label, offset, jip);
1971 } else if (devinfo->ver < 6 && (opcode == BRW_OPCODE_BREAK ||
1975 format(file, "Jump: %d", brw_inst_gfx4_jump_count(devinfo, inst));
1977 format(file, "Pop: %"PRIu64, brw_inst_gfx4_pop_count(devinfo, inst));
1978 } else if (devinfo->ver < 6 && (opcode == BRW_OPCODE_IF ||
1983 format(file, "Jump: %d", brw_inst_gfx4_jump_count(devinfo, inst));
1984 } else if (devinfo->ver < 6 && opcode == BRW_OPCODE_ENDIF) {
1986 format(file, "Pop: %"PRIu64, brw_inst_gfx4_pop_count(devinfo, inst));
1989 err |= src1(file, devinfo, inst);
1992 err |= dest_3src(file, devinfo, inst);
1995 err |= src0_3src(file, devinfo, inst);
1998 err |= src1_3src(file, devinfo, inst);
2001 err |= src2_3src(file, devinfo, inst);
2005 err |= dest(file, devinfo, inst);
2010 err |= src0(file, devinfo, inst);
2015 err |= src1(file, devinfo, inst);
2020 enum brw_message_target sfid = brw_inst_sfid(devinfo, inst);
2024 if (is_split_send(devinfo, opcode)) {
2026 if (brw_inst_send_sel_reg32_desc(devinfo, inst)) {
2028 err |= src_send_desc_ia(file, devinfo, 0);
2031 imm_desc = brw_inst_send_desc(devinfo, inst);
2036 if (brw_inst_send_sel_reg32_ex_desc(devinfo, inst)) {
2038 err |= src_send_desc_ia(file, devinfo,
2039 brw_inst_send_ex_desc_ia_subreg_nr(devinfo, inst));
2042 imm_ex_desc = brw_inst_sends_ex_desc(devinfo, inst);
2046 if (brw_inst_src1_reg_file(devinfo, inst) != BRW_IMMEDIATE_VALUE) {
2049 err |= src1(file, devinfo, inst);
2053 imm_desc = brw_inst_send_desc(devinfo, inst);
2066 err |= control(file, "SFID", devinfo->ver >= 6 ? gfx6_sfid : gfx4_sfid,
2077 brw_inst_math_msg_function(devinfo, inst), &space);
2079 brw_inst_math_msg_saturate(devinfo, inst), &space);
2081 brw_inst_math_msg_signed_int(devinfo, inst), &space);
2083 brw_inst_math_msg_data_type(devinfo, inst), &space);
2085 brw_inst_math_msg_precision(devinfo, inst), &space);
2088 if (devinfo->ver >= 5) {
2090 brw_sampler_desc_msg_type(devinfo, imm_desc),
2093 brw_sampler_desc_simd_mode(devinfo, imm_desc),
2096 brw_sampler_desc_binding_table_index(devinfo, imm_desc),
2097 brw_sampler_desc_sampler(devinfo, imm_desc));
2100 brw_sampler_desc_binding_table_index(devinfo, imm_desc),
2101 brw_sampler_desc_sampler(devinfo, imm_desc),
2102 brw_sampler_desc_msg_type(devinfo, imm_desc));
2103 if (!devinfo->is_g4x) {
2106 brw_sampler_desc_return_format(devinfo, imm_desc),
2115 if (devinfo->ver >= 6) {
2117 brw_dp_desc_binding_table_index(devinfo, imm_desc),
2118 brw_dp_desc_msg_control(devinfo, imm_desc),
2119 brw_dp_desc_msg_type(devinfo, imm_desc),
2120 devinfo->ver >= 7 ? 0u :
2121 brw_dp_write_desc_write_commit(devinfo, imm_desc));
2123 bool is_965 = devinfo->ver == 4 && !devinfo->is_g4x;
2127 brw_dp_read_desc_msg_type(devinfo, imm_desc),
2131 brw_dp_read_desc_msg_control(devinfo, imm_desc));
2134 brw_dp_desc_binding_table_index(devinfo, imm_desc));
2140 unsigned msg_type = brw_fb_write_desc_msg_type(devinfo, imm_desc);
2143 dp_rc_msg_type(devinfo), msg_type, &space);
2146 (devinfo->ver >= 6 ? GFX6_DATAPORT_WRITE_MESSAGE_RENDER_TARGET_WRITE
2151 brw_inst_rt_message_type(devinfo, inst), &space);
2152 if (devinfo->ver >= 6 && brw_inst_rt_slot_group(devinfo, inst))
2154 if (brw_fb_write_desc_last_render_target(devinfo, imm_desc))
2156 if (devinfo->ver >= 10 &&
2157 brw_fb_write_desc_coarse_write(devinfo, imm_desc))
2159 if (devinfo->ver < 7 &&
2160 brw_fb_write_desc_write_commit(devinfo, imm_desc))
2164 brw_fb_write_desc_msg_control(devinfo, imm_desc));
2168 brw_fb_desc_binding_table_index(devinfo, imm_desc));
2173 unsigned opcode = brw_inst_urb_opcode(devinfo, inst);
2175 format(file, " offset %"PRIu64, brw_inst_urb_global_offset(devinfo, inst));
2180 devinfo->ver >= 7 ? gfx7_urb_opcode
2184 if (devinfo->ver >= 7 &&
2185 brw_inst_urb_per_slot_offset(devinfo, inst)) {
2191 if (brw_inst_urb_channel_mask_present(devinfo, inst))
2195 brw_inst_urb_swizzle_control(devinfo, inst),
2199 if (devinfo->ver < 7) {
2201 brw_inst_urb_allocate(devinfo, inst), &space);
2203 brw_inst_urb_used(devinfo, inst), &space);
2205 if (devinfo->ver < 8) {
2207 brw_inst_urb_complete(devinfo, inst), &space);
2216 gfx7_gateway_subfuncid[brw_inst_gateway_subfuncid(devinfo, inst)]);
2222 assert(devinfo->has_lsc);
2224 const enum lsc_opcode op = lsc_msg_desc_opcode(devinfo, imm_desc);
2229 lsc_msg_desc_addr_size(devinfo, imm_desc),
2235 lsc_fence_msg_desc_scope(devinfo, imm_desc),
2239 lsc_fence_msg_desc_flush_type(devinfo, imm_desc),
2244 lsc_fence_msg_desc_backup_routing(devinfo, imm_desc),
2249 lsc_msg_desc_data_size(devinfo, imm_desc),
2255 lsc_msg_desc_cmask(devinfo, imm_desc),
2260 lsc_msg_desc_vect_size(devinfo, imm_desc),
2262 if (lsc_msg_desc_transpose(devinfo, imm_desc))
2271 lsc_msg_desc_cache_ctrl(devinfo, imm_desc),
2278 lsc_msg_desc_cache_ctrl(devinfo, imm_desc),
2283 format(file, " dst_len = %u,", lsc_msg_desc_dest_len(devinfo, imm_desc));
2284 format(file, " src0_len = %u,", lsc_msg_desc_src0_len(devinfo, imm_desc));
2285 format(file, " src1_len = %d", brw_message_ex_desc_ex_mlen(devinfo, imm_ex_desc));
2287 lsc_msg_desc_addr_type(devinfo, imm_desc), &space);
2293 if (devinfo->ver >= 7) {
2299 brw_dp_desc_msg_type(devinfo, imm_desc), &space);
2302 brw_dp_desc_binding_table_index(devinfo, imm_desc));
2304 switch (brw_inst_dp_msg_type(devinfo, inst)) {
2307 brw_dp_desc_msg_control(devinfo, imm_desc) & 0xf,
2312 unsigned msg_ctrl = brw_dp_desc_msg_control(devinfo, imm_desc);
2320 brw_dp_desc_msg_control(devinfo, imm_desc));
2329 if (devinfo->ver >= 7) {
2333 unsigned msg_ctrl = brw_dp_desc_msg_control(devinfo, imm_desc);
2337 brw_dp_desc_msg_type(devinfo, imm_desc), &space);
2340 brw_dp_desc_binding_table_index(devinfo, imm_desc));
2342 switch (brw_inst_dp_msg_type(devinfo, inst)) {
2390 if (devinfo->ver >= 7) {
2392 brw_inst_pi_nopersp(devinfo, inst) ? "linear" : "persp",
2393 pixel_interpolator_msg_types[brw_inst_pi_message_type(devinfo, inst)],
2394 brw_inst_pi_message_data(devinfo, inst));
2401 if (devinfo->has_ray_tracing) {
2403 brw_rt_trace_ray_desc_exec_size(devinfo, imm_desc));
2421 lsc_disassemble_ex_desc(devinfo, imm_desc, imm_ex_desc, file);
2424 format(file, "mlen %u", brw_message_desc_mlen(devinfo, imm_desc));
2427 brw_message_ex_desc_ex_mlen(devinfo, imm_ex_desc));
2430 format(file, " rlen %u", brw_message_desc_rlen(devinfo, imm_desc));
2438 brw_inst_access_mode(devinfo, inst), &space);
2439 if (devinfo->ver >= 6) {
2441 brw_inst_mask_control(devinfo, inst), &space);
2444 brw_inst_mask_control(devinfo, inst), &space);
2447 if (devinfo->ver < 12) {
2449 ((brw_inst_no_dd_check(devinfo, inst) << 1) |
2450 brw_inst_no_dd_clear(devinfo, inst)), &space);
2453 if (devinfo->ver >= 6)
2454 err |= qtr_ctrl(file, devinfo, inst);
2456 if (brw_inst_qtr_control(devinfo, inst) == BRW_COMPRESSION_COMPRESSED &&
2458 brw_inst_dst_reg_file(devinfo, inst) == BRW_MESSAGE_REGISTER_FILE &&
2459 brw_inst_dst_da_reg_nr(devinfo, inst) & BRW_MRF_COMPR4) {
2463 brw_inst_qtr_control(devinfo, inst), &space);
2467 if (devinfo->ver >= 12)
2468 err |= swsb(file, devinfo, inst);
2472 (devinfo->ver >= 12 ? brw_inst_atomic_control(devinfo, inst) :
2473 brw_inst_thread_control(devinfo, inst)),
2475 if (has_branch_ctrl(devinfo, opcode)) {
2477 brw_inst_branch_control(devinfo, inst), &space);
2478 } else if (devinfo->ver >= 6) {
2480 brw_inst_acc_wr_control(devinfo, inst), &space);
2484 brw_inst_eot(devinfo, inst), &space);