Lines Matching defs:inst
894 dest(FILE *file, const struct brw_isa_info *isa, const brw_inst *inst)
897 enum brw_reg_type type = brw_inst_dst_type(devinfo, inst);
901 if (is_split_send(devinfo, brw_inst_opcode(isa, inst))) {
906 err |= reg(file, brw_inst_send_dst_reg_file(devinfo, inst),
907 brw_inst_dst_da_reg_nr(devinfo, inst));
909 } else if (brw_inst_dst_address_mode(devinfo, inst) == BRW_ADDRESS_DIRECT) {
910 err |= reg(file, brw_inst_send_dst_reg_file(devinfo, inst),
911 brw_inst_dst_da_reg_nr(devinfo, inst));
912 unsigned subreg_nr = brw_inst_dst_da16_subreg_nr(devinfo, inst);
918 if (brw_inst_dst_ia_subreg_nr(devinfo, inst))
919 format(file, ".%"PRIu64, brw_inst_dst_ia_subreg_nr(devinfo, inst) /
921 if (brw_inst_send_dst_ia16_addr_imm(devinfo, inst))
922 format(file, " %d", brw_inst_send_dst_ia16_addr_imm(devinfo, inst));
926 } else if (brw_inst_access_mode(devinfo, inst) == BRW_ALIGN_1) {
927 if (brw_inst_dst_address_mode(devinfo, inst) == BRW_ADDRESS_DIRECT) {
928 err |= reg(file, brw_inst_dst_reg_file(devinfo, inst),
929 brw_inst_dst_da_reg_nr(devinfo, inst));
932 if (brw_inst_dst_da1_subreg_nr(devinfo, inst))
933 format(file, ".%"PRIu64, brw_inst_dst_da1_subreg_nr(devinfo, inst) /
937 brw_inst_dst_hstride(devinfo, inst), NULL);
942 if (brw_inst_dst_ia_subreg_nr(devinfo, inst))
943 format(file, ".%"PRIu64, brw_inst_dst_ia_subreg_nr(devinfo, inst) /
945 if (brw_inst_dst_ia1_addr_imm(devinfo, inst))
946 format(file, " %d", brw_inst_dst_ia1_addr_imm(devinfo, inst));
949 brw_inst_dst_hstride(devinfo, inst), NULL);
954 if (brw_inst_dst_address_mode(devinfo, inst) == BRW_ADDRESS_DIRECT) {
955 err |= reg(file, brw_inst_dst_reg_file(devinfo, inst),
956 brw_inst_dst_da_reg_nr(devinfo, inst));
959 if (brw_inst_dst_da16_subreg_nr(devinfo, inst))
963 brw_inst_da16_writemask(devinfo, inst), NULL);
976 const brw_inst *inst)
978 bool is_align1 = brw_inst_3src_access_mode(devinfo, inst) == BRW_ALIGN_1;
987 if (devinfo->ver == 6 && brw_inst_3src_a16_dst_reg_file(devinfo, inst))
990 reg_file = brw_inst_3src_a1_dst_reg_file(devinfo, inst);
991 else if (is_align1 && brw_inst_3src_a1_dst_reg_file(devinfo, inst))
996 err |= reg(file, reg_file, brw_inst_3src_dst_reg_nr(devinfo, inst));
1001 type = brw_inst_3src_a1_dst_type(devinfo, inst);
1002 subreg_nr = brw_inst_3src_a1_dst_subreg_nr(devinfo, inst);
1004 type = brw_inst_3src_a16_dst_type(devinfo, inst);
1005 subreg_nr = brw_inst_3src_a16_dst_subreg_nr(devinfo, inst) * 4;
1015 brw_inst_3src_a16_dst_writemask(devinfo, inst), NULL);
1249 const brw_inst *inst)
1259 bool is_align1 = brw_inst_3src_access_mode(devinfo, inst) == BRW_ALIGN_1;
1265 if (devinfo->ver >= 12 && !brw_inst_3src_a1_src0_is_imm(devinfo, inst)) {
1266 _file = brw_inst_3src_a1_src0_reg_file(devinfo, inst);
1267 } else if (brw_inst_3src_a1_src0_reg_file(devinfo, inst) ==
1270 } else if (brw_inst_3src_a1_src0_type(devinfo, inst) ==
1275 uint16_t imm_val = brw_inst_3src_a1_src0_imm(devinfo, inst);
1276 enum brw_reg_type type = brw_inst_3src_a1_src0_type(devinfo, inst);
1288 reg_nr = brw_inst_3src_src0_reg_nr(devinfo, inst);
1289 subreg_nr = brw_inst_3src_a1_src0_subreg_nr(devinfo, inst);
1290 type = brw_inst_3src_a1_src0_type(devinfo, inst);
1292 devinfo, brw_inst_3src_a1_src0_vstride(devinfo, inst));
1294 brw_inst_3src_a1_src0_hstride(devinfo, inst));
1298 reg_nr = brw_inst_3src_src0_reg_nr(devinfo, inst);
1299 subreg_nr = brw_inst_3src_a16_src0_subreg_nr(devinfo, inst) * 4;
1300 type = brw_inst_3src_a16_src_type(devinfo, inst);
1302 if (brw_inst_3src_a16_src0_rep_ctrl(devinfo, inst)) {
1319 brw_inst_3src_src0_negate(devinfo, inst), NULL);
1320 err |= control(file, "abs", _abs, brw_inst_3src_src0_abs(devinfo, inst), NULL);
1329 err |= src_swizzle(file, brw_inst_3src_a16_src0_swizzle(devinfo, inst));
1336 const brw_inst *inst)
1346 bool is_align1 = brw_inst_3src_access_mode(devinfo, inst) == BRW_ALIGN_1;
1353 _file = brw_inst_3src_a1_src1_reg_file(devinfo, inst);
1354 } else if (brw_inst_3src_a1_src1_reg_file(devinfo, inst) ==
1361 reg_nr = brw_inst_3src_src1_reg_nr(devinfo, inst);
1362 subreg_nr = brw_inst_3src_a1_src1_subreg_nr(devinfo, inst);
1363 type = brw_inst_3src_a1_src1_type(devinfo, inst);
1366 devinfo, brw_inst_3src_a1_src1_vstride(devinfo, inst));
1368 brw_inst_3src_a1_src1_hstride(devinfo, inst));
1372 reg_nr = brw_inst_3src_src1_reg_nr(devinfo, inst);
1373 subreg_nr = brw_inst_3src_a16_src1_subreg_nr(devinfo, inst) * 4;
1374 type = brw_inst_3src_a16_src_type(devinfo, inst);
1376 if (brw_inst_3src_a16_src1_rep_ctrl(devinfo, inst)) {
1393 brw_inst_3src_src1_negate(devinfo, inst), NULL);
1394 err |= control(file, "abs", _abs, brw_inst_3src_src1_abs(devinfo, inst), NULL);
1403 err |= src_swizzle(file, brw_inst_3src_a16_src1_swizzle(devinfo, inst));
1410 const brw_inst *inst)
1420 bool is_align1 = brw_inst_3src_access_mode(devinfo, inst) == BRW_ALIGN_1;
1426 if (devinfo->ver >= 12 && !brw_inst_3src_a1_src2_is_imm(devinfo, inst)) {
1427 _file = brw_inst_3src_a1_src2_reg_file(devinfo, inst);
1428 } else if (brw_inst_3src_a1_src2_reg_file(devinfo, inst) ==
1433 uint16_t imm_val = brw_inst_3src_a1_src2_imm(devinfo, inst);
1434 enum brw_reg_type type = brw_inst_3src_a1_src2_type(devinfo, inst);
1446 reg_nr = brw_inst_3src_src2_reg_nr(devinfo, inst);
1447 subreg_nr = brw_inst_3src_a1_src2_subreg_nr(devinfo, inst);
1448 type = brw_inst_3src_a1_src2_type(devinfo, inst);
1454 brw_inst_3src_a1_src2_hstride(devinfo, inst));
1456 brw_inst_3src_a1_src2_hstride(devinfo, inst));
1460 reg_nr = brw_inst_3src_src2_reg_nr(devinfo, inst);
1461 subreg_nr = brw_inst_3src_a16_src2_subreg_nr(devinfo, inst) * 4;
1462 type = brw_inst_3src_a16_src_type(devinfo, inst);
1464 if (brw_inst_3src_a16_src2_rep_ctrl(devinfo, inst)) {
1481 brw_inst_3src_src2_negate(devinfo, inst), NULL);
1482 err |= control(file, "abs", _abs, brw_inst_3src_src2_abs(devinfo, inst), NULL);
1491 err |= src_swizzle(file, brw_inst_3src_a16_src2_swizzle(devinfo, inst));
1498 const brw_inst *inst)
1504 format(file, "0x%016"PRIx64"UQ", brw_inst_imm_uq(devinfo, inst));
1507 format(file, "0x%016"PRIx64"Q", brw_inst_imm_uq(devinfo, inst));
1510 format(file, "0x%08xUD", brw_inst_imm_ud(devinfo, inst));
1513 format(file, "%dD", brw_inst_imm_d(devinfo, inst));
1516 format(file, "0x%04xUW", (uint16_t) brw_inst_imm_ud(devinfo, inst));
1519 format(file, "%dW", (int16_t) brw_inst_imm_d(devinfo, inst));
1522 format(file, "0x%08xUV", brw_inst_imm_ud(devinfo, inst));
1525 format(file, "0x%"PRIx64"VF", brw_inst_bits(inst, 127, 96));
1528 brw_vf_to_float(brw_inst_imm_ud(devinfo, inst)),
1529 brw_vf_to_float(brw_inst_imm_ud(devinfo, inst) >> 8),
1530 brw_vf_to_float(brw_inst_imm_ud(devinfo, inst) >> 16),
1531 brw_vf_to_float(brw_inst_imm_ud(devinfo, inst) >> 24));
1534 format(file, "0x%08xV", brw_inst_imm_ud(devinfo, inst));
1540 if (brw_inst_opcode(isa, inst) == BRW_OPCODE_DIM) {
1541 format(file, "0x%"PRIx64"F", brw_inst_bits(inst, 127, 64));
1543 format(file, "/* %-gF */", brw_inst_imm_df(devinfo, inst));
1545 format(file, "0x%"PRIx64"F", brw_inst_bits(inst, 127, 96));
1547 format(file, " /* %-gF */", brw_inst_imm_f(devinfo, inst));
1551 format(file, "0x%016"PRIx64"DF", brw_inst_bits(inst, 127, 64));
1553 format(file, "/* %-gDF */", brw_inst_imm_df(devinfo, inst));
1618 src0(FILE *file, const struct brw_isa_info *isa, const brw_inst *inst)
1622 if (is_split_send(devinfo, brw_inst_opcode(isa, inst))) {
1627 brw_inst_send_src0_reg_file(devinfo, inst),
1628 brw_inst_src0_da_reg_nr(devinfo, inst),
1630 } else if (brw_inst_send_src0_address_mode(devinfo, inst) == BRW_ADDRESS_DIRECT) {
1635 brw_inst_src0_da_reg_nr(devinfo, inst),
1636 brw_inst_src0_da16_subreg_nr(devinfo, inst));
1641 brw_inst_send_src0_ia16_addr_imm(devinfo, inst),
1642 brw_inst_src0_ia_subreg_nr(devinfo, inst));
1644 } else if (brw_inst_src0_reg_file(devinfo, inst) == BRW_IMMEDIATE_VALUE) {
1645 return imm(file, isa, brw_inst_src0_type(devinfo, inst), inst);
1646 } else if (brw_inst_access_mode(devinfo, inst) == BRW_ALIGN_1) {
1647 if (brw_inst_src0_address_mode(devinfo, inst) == BRW_ADDRESS_DIRECT) {
1650 brw_inst_opcode(isa, inst),
1651 brw_inst_src0_type(devinfo, inst),
1652 brw_inst_src0_reg_file(devinfo, inst),
1653 brw_inst_src0_vstride(devinfo, inst),
1654 brw_inst_src0_width(devinfo, inst),
1655 brw_inst_src0_hstride(devinfo, inst),
1656 brw_inst_src0_da_reg_nr(devinfo, inst),
1657 brw_inst_src0_da1_subreg_nr(devinfo, inst),
1658 brw_inst_src0_abs(devinfo, inst),
1659 brw_inst_src0_negate(devinfo, inst));
1663 brw_inst_opcode(isa, inst),
1664 brw_inst_src0_type(devinfo, inst),
1665 brw_inst_src0_ia1_addr_imm(devinfo, inst),
1666 brw_inst_src0_ia_subreg_nr(devinfo, inst),
1667 brw_inst_src0_negate(devinfo, inst),
1668 brw_inst_src0_abs(devinfo, inst),
1669 brw_inst_src0_hstride(devinfo, inst),
1670 brw_inst_src0_width(devinfo, inst),
1671 brw_inst_src0_vstride(devinfo, inst));
1674 if (brw_inst_src0_address_mode(devinfo, inst) == BRW_ADDRESS_DIRECT) {
1677 brw_inst_opcode(isa, inst),
1678 brw_inst_src0_type(devinfo, inst),
1679 brw_inst_src0_reg_file(devinfo, inst),
1680 brw_inst_src0_vstride(devinfo, inst),
1681 brw_inst_src0_da_reg_nr(devinfo, inst),
1682 brw_inst_src0_da16_subreg_nr(devinfo, inst),
1683 brw_inst_src0_abs(devinfo, inst),
1684 brw_inst_src0_negate(devinfo, inst),
1685 brw_inst_src0_da16_swiz_x(devinfo, inst),
1686 brw_inst_src0_da16_swiz_y(devinfo, inst),
1687 brw_inst_src0_da16_swiz_z(devinfo, inst),
1688 brw_inst_src0_da16_swiz_w(devinfo, inst));
1697 src1(FILE *file, const struct brw_isa_info *isa, const brw_inst *inst)
1701 if (is_split_send(devinfo, brw_inst_opcode(isa, inst))) {
1705 brw_inst_send_src1_reg_file(devinfo, inst),
1706 brw_inst_send_src1_reg_nr(devinfo, inst),
1708 } else if (brw_inst_src1_reg_file(devinfo, inst) == BRW_IMMEDIATE_VALUE) {
1709 return imm(file, isa, brw_inst_src1_type(devinfo, inst), inst);
1710 } else if (brw_inst_access_mode(devinfo, inst) == BRW_ALIGN_1) {
1711 if (brw_inst_src1_address_mode(devinfo, inst) == BRW_ADDRESS_DIRECT) {
1714 brw_inst_opcode(isa, inst),
1715 brw_inst_src1_type(devinfo, inst),
1716 brw_inst_src1_reg_file(devinfo, inst),
1717 brw_inst_src1_vstride(devinfo, inst),
1718 brw_inst_src1_width(devinfo, inst),
1719 brw_inst_src1_hstride(devinfo, inst),
1720 brw_inst_src1_da_reg_nr(devinfo, inst),
1721 brw_inst_src1_da1_subreg_nr(devinfo, inst),
1722 brw_inst_src1_abs(devinfo, inst),
1723 brw_inst_src1_negate(devinfo, inst));
1727 brw_inst_opcode(isa, inst),
1728 brw_inst_src1_type(devinfo, inst),
1729 brw_inst_src1_ia1_addr_imm(devinfo, inst),
1730 brw_inst_src1_ia_subreg_nr(devinfo, inst),
1731 brw_inst_src1_negate(devinfo, inst),
1732 brw_inst_src1_abs(devinfo, inst),
1733 brw_inst_src1_hstride(devinfo, inst),
1734 brw_inst_src1_width(devinfo, inst),
1735 brw_inst_src1_vstride(devinfo, inst));
1738 if (brw_inst_src1_address_mode(devinfo, inst) == BRW_ADDRESS_DIRECT) {
1741 brw_inst_opcode(isa, inst),
1742 brw_inst_src1_type(devinfo, inst),
1743 brw_inst_src1_reg_file(devinfo, inst),
1744 brw_inst_src1_vstride(devinfo, inst),
1745 brw_inst_src1_da_reg_nr(devinfo, inst),
1746 brw_inst_src1_da16_subreg_nr(devinfo, inst),
1747 brw_inst_src1_abs(devinfo, inst),
1748 brw_inst_src1_negate(devinfo, inst),
1749 brw_inst_src1_da16_swiz_x(devinfo, inst),
1750 brw_inst_src1_da16_swiz_y(devinfo, inst),
1751 brw_inst_src1_da16_swiz_z(devinfo, inst),
1752 brw_inst_src1_da16_swiz_w(devinfo, inst));
1762 const brw_inst *inst)
1764 int qtr_ctl = brw_inst_qtr_control(devinfo, inst);
1765 int exec_size = 1 << brw_inst_exec_size(devinfo, inst);
1767 brw_inst_nib_control(devinfo, inst);
1796 swsb(FILE *file, const struct brw_isa_info *isa, const brw_inst *inst)
1799 const enum opcode opcode = brw_inst_opcode(isa, inst);
1800 const uint8_t x = brw_inst_swsb(devinfo, inst);
1821 brw_inst inst;
1822 inst.data[0] = (((uint64_t) dw1) << 32) | ((uint64_t) dw0);
1823 inst.data[1] = (((uint64_t) dw3) << 32) | ((uint64_t) dw2);
1824 return brw_disassemble_inst(stderr, isa, &inst, false, 0, NULL);
1889 const brw_inst *inst, bool is_compacted,
1897 const enum opcode opcode = brw_inst_opcode(isa, inst);
1900 if (brw_inst_pred_control(devinfo, inst)) {
1903 brw_inst_pred_inv(devinfo, inst), NULL);
1905 devinfo->ver >= 7 ? brw_inst_flag_reg_nr(devinfo, inst) : 0,
1906 brw_inst_flag_subreg_nr(devinfo, inst));
1907 if (brw_inst_access_mode(devinfo, inst) == BRW_ALIGN_1) {
1909 brw_inst_pred_control(devinfo, inst), NULL);
1912 brw_inst_pred_control(devinfo, inst), NULL);
1920 err |= control(file, "saturate", saturate, brw_inst_saturate(devinfo, inst),
1924 brw_inst_debug_control(devinfo, inst), NULL);
1929 brw_inst_math_function(devinfo, inst), NULL);
1934 brw_inst_cond_modifier(devinfo, inst), NULL);
1938 brw_inst_cond_modifier(devinfo, inst), NULL);
1944 if (brw_inst_cond_modifier(devinfo, inst) &&
1950 devinfo->ver >= 7 ? brw_inst_flag_reg_nr(devinfo, inst) : 0,
1951 brw_inst_flag_subreg_nr(devinfo, inst));
1958 brw_inst_exec_size(devinfo, inst), NULL);
1963 format(file, " %"PRIu64, brw_inst_base_mrf(devinfo, inst));
1969 write_label(file, devinfo, root_label, offset, brw_inst_jip(devinfo, inst));
1973 write_label(file, devinfo, root_label, offset, brw_inst_uip(devinfo, inst));
1977 jip = brw_inst_jip(devinfo, inst);
1979 jip = brw_inst_gfx6_jump_count(devinfo, inst);
1989 format(file, "Jump: %d", brw_inst_gfx4_jump_count(devinfo, inst));
1991 format(file, "Pop: %"PRIu64, brw_inst_gfx4_pop_count(devinfo, inst));
1997 format(file, "Jump: %d", brw_inst_gfx4_jump_count(devinfo, inst));
2000 format(file, "Pop: %"PRIu64, brw_inst_gfx4_pop_count(devinfo, inst));
2003 err |= src1(file, isa, inst);
2006 err |= dest_3src(file, devinfo, inst);
2009 err |= src0_3src(file, devinfo, inst);
2012 err |= src1_3src(file, devinfo, inst);
2015 err |= src2_3src(file, devinfo, inst);
2019 err |= dest(file, isa, inst);
2024 err |= src0(file, isa, inst);
2029 err |= src1(file, isa, inst);
2034 enum brw_message_target sfid = brw_inst_sfid(devinfo, inst);
2040 if (brw_inst_send_sel_reg32_desc(devinfo, inst)) {
2045 imm_desc = brw_inst_send_desc(devinfo, inst);
2050 if (brw_inst_send_sel_reg32_ex_desc(devinfo, inst)) {
2053 brw_inst_send_ex_desc_ia_subreg_nr(devinfo, inst));
2056 imm_ex_desc = brw_inst_sends_ex_desc(devinfo, inst);
2060 if (brw_inst_src1_reg_file(devinfo, inst) != BRW_IMMEDIATE_VALUE) {
2063 err |= src1(file, isa, inst);
2067 imm_desc = brw_inst_send_desc(devinfo, inst);
2072 fprintf(file, "0x%08"PRIx64, inst->data[1] >> 32);
2091 brw_inst_math_msg_function(devinfo, inst), &space);
2093 brw_inst_math_msg_saturate(devinfo, inst), &space);
2095 brw_inst_math_msg_signed_int(devinfo, inst), &space);
2097 brw_inst_math_msg_data_type(devinfo, inst), &space);
2099 brw_inst_math_msg_precision(devinfo, inst), &space);
2169 brw_inst_rt_message_type(devinfo, inst), &space);
2170 if (devinfo->ver >= 6 && brw_inst_rt_slot_group(devinfo, inst))
2191 unsigned opcode = brw_inst_urb_opcode(devinfo, inst);
2193 format(file, " offset %"PRIu64, brw_inst_urb_global_offset(devinfo, inst));
2203 brw_inst_urb_per_slot_offset(devinfo, inst)) {
2209 if (brw_inst_urb_channel_mask_present(devinfo, inst))
2213 brw_inst_urb_swizzle_control(devinfo, inst),
2219 brw_inst_urb_allocate(devinfo, inst), &space);
2221 brw_inst_urb_used(devinfo, inst), &space);
2225 brw_inst_urb_complete(devinfo, inst), &space);
2234 gfx7_gateway_subfuncid[brw_inst_gateway_subfuncid(devinfo, inst)]);
2322 switch (brw_inst_dp_msg_type(devinfo, inst)) {
2360 switch (brw_inst_dp_msg_type(devinfo, inst)) {
2410 brw_inst_pi_nopersp(devinfo, inst) ? "linear" : "persp",
2411 pixel_interpolator_msg_types[brw_inst_pi_message_type(devinfo, inst)],
2412 brw_inst_pi_message_data(devinfo, inst));
2456 brw_inst_access_mode(devinfo, inst), &space);
2459 brw_inst_mask_control(devinfo, inst), &space);
2462 brw_inst_mask_control(devinfo, inst), &space);
2467 ((brw_inst_no_dd_check(devinfo, inst) << 1) |
2468 brw_inst_no_dd_clear(devinfo, inst)), &space);
2472 err |= qtr_ctrl(file, devinfo, inst);
2474 if (brw_inst_qtr_control(devinfo, inst) == BRW_COMPRESSION_COMPRESSED &&
2476 brw_inst_dst_reg_file(devinfo, inst) == BRW_MESSAGE_REGISTER_FILE &&
2477 brw_inst_dst_da_reg_nr(devinfo, inst) & BRW_MRF_COMPR4) {
2481 brw_inst_qtr_control(devinfo, inst), &space);
2486 err |= swsb(file, isa, inst);
2490 (devinfo->ver >= 12 ? brw_inst_atomic_control(devinfo, inst) :
2491 brw_inst_thread_control(devinfo, inst)),
2495 brw_inst_branch_control(devinfo, inst), &space);
2498 brw_inst_acc_wr_control(devinfo, inst), &space);
2502 brw_inst_eot(devinfo, inst), &space);