Lines Matching refs:word
721 * subdividing the 128-bit word in 16-bit increments. For 64-bit, we uppercase
1044 print_compact_branch_writeout_field(disassemble_context *ctx, FILE *fp, uint16_t word)
1046 midgard_jmp_writeout_op op = word & 0x7;
1052 memcpy((char *) &br_uncond, (char *) &word, sizeof(br_uncond));
1073 memcpy((char *) &br_cond, (char *) &word, sizeof(br_cond));
1273 print_varying_parameters(FILE *fp, midgard_load_store_word *word)
1275 midgard_varying_params p = midgard_unpack_varying_params(*word);
1358 midgard_load_store_word *word = (midgard_load_store_word *) &data;
1360 print_ld_st_opcode(fp, word->op);
1362 if (word->op == midgard_op_trap) {
1363 fprintf(fp, " 0x%X\n", word->signed_offset);
1369 if (OP_USES_ATTRIB(word->op)) {
1372 (word->op == midgard_op_st_vary_32) ||
1373 (word->op == midgard_op_st_vary_16) ||
1374 (word->op == midgard_op_st_vary_32u) ||
1375 (word->op == midgard_op_st_vary_32i) ||
1376 (word->op == midgard_op_ld_vary_32) ||
1377 (word->op == midgard_op_ld_vary_16) ||
1378 (word->op == midgard_op_ld_vary_32u) ||
1379 (word->op == midgard_op_ld_vary_32i);
1382 (word->op == midgard_op_ld_attr_32) ||
1383 (word->op == midgard_op_ld_attr_16) ||
1384 (word->op == midgard_op_ld_attr_32u) ||
1385 (word->op == midgard_op_ld_attr_32i);
1388 bool is_secondary = (word->index_format >> 1);
1392 } else if (word->op == midgard_op_ld_cubemap_coords || OP_IS_PROJECTION(word->op))
1393 fprintf(fp, ".%s", word->bitsize_toggle ? "f32" : "f16");
1399 if (!OP_IS_STORE(word->op)) {
1400 print_ldst_write_reg(fp, word->reg);
1406 unsigned swizzle = word->swizzle;
1407 if ((OP_IS_REG2REG_LDST(word->op) &&
1408 word->op != midgard_op_lea &&
1409 word->op != midgard_op_lea_image) || OP_IS_ATOMIC(word->op))
1411 print_ldst_mask(fp, word->mask, swizzle);
1413 print_ldst_read_reg(fp, word->reg);
1414 print_vec_swizzle(fp, word->swizzle, midgard_src_passthrough,
1419 if (OP_IS_UBO_READ(word->op)) {
1420 if (word->signed_offset & 1) { /* buffer index imm */
1421 unsigned imm = midgard_unpack_ubo_index_imm(*word);
1425 print_ldst_read_reg(fp, word->arg_reg);
1426 fprintf(fp, ".%c", components[word->arg_comp]);
1430 print_ldst_read_reg(fp, word->index_reg);
1431 fprintf(fp, ".%c", components[word->index_comp]);
1432 if (word->index_shift)
1433 fprintf(fp, " lsl %u", word->index_shift);
1434 midgard_print_sint(fp, UNPACK_LDST_UBO_OFS(word->signed_offset));
1438 if (OP_HAS_ADDRESS(word->op)) {
1443 if (word->arg_reg != 7 || verbose) {
1444 print_ldst_read_reg(fp, word->arg_reg);
1446 word->bitsize_toggle ? 64 : 32, components[word->arg_comp]);
1450 if ((word->op < midgard_op_atomic_cmpxchg ||
1451 word->op > midgard_op_atomic_cmpxchg64_be) &&
1452 word->index_reg != 0x7) {
1456 print_ldst_read_reg(fp, word->index_reg);
1458 index_format_names[word->index_format],
1459 components[word->index_comp]);
1460 if (word->index_shift)
1461 fprintf(fp, " lsl %u", word->index_shift);
1464 midgard_print_sint(fp, word->signed_offset);
1468 if (OP_IS_REG2REG_LDST(word->op)) {
1470 print_ldst_read_reg(fp, word->arg_reg);
1471 print_vec_swizzle(fp, word->swizzle, midgard_src_passthrough,
1476 if (OP_IS_ATOMIC(word->op)) {
1477 unsigned src = (word->swizzle >> 2) & 0x7;
1478 unsigned src_comp = word->swizzle & 0x3;
1485 if (word->op >= midgard_op_atomic_cmpxchg &&
1486 word->op <= midgard_op_atomic_cmpxchg64_be) {
1488 print_ldst_read_reg(fp, word->index_reg);
1489 fprintf(fp, ".%c", components[word->index_comp]);
1493 if (OP_IS_SPECIAL(word->op) || OP_USES_ATTRIB(word->op)) {
1495 print_ldst_read_reg(fp, word->index_reg);
1496 fprintf(fp, ".%c", components[word->index_comp]);
1497 if (word->index_shift)
1498 fprintf(fp, " lsl %u", word->index_shift);
1499 midgard_print_sint(fp, UNPACK_LDST_ATTRIB_OFS(word->signed_offset));
1503 if (OP_USES_ATTRIB(word->op)) {
1505 print_ldst_read_reg(fp, word->arg_reg);
1507 if (OP_IS_IMAGE(word->op))
1508 fprintf(fp, ".u%d", word->bitsize_toggle ? 64 : 32);
1510 fprintf(fp, ".%c", components[word->arg_comp]);
1512 if (word->bitsize_toggle && !OP_IS_IMAGE(word->op))
1513 midgard_print_sint(fp, UNPACK_LDST_VERTEX_OFS(word->signed_offset));
1517 if (OP_IS_PACK_COLOUR(word->op) || OP_IS_UNPACK_COLOUR(word->op)) {
1519 unsigned format_specifier = (word->signed_offset << 4) | word->index_shift;
1527 if (is_op_varying(word->op)) {
1530 if (word->index_reg == 0x7 && ctx->midg_stats.varying_count >= 0)
1532 UNPACK_LDST_ATTRIB_OFS(word->signed_offset));
1535 } else if (is_op_attribute(word->op)) {
1536 if (word->index_reg == 0x7 && ctx->midg_stats.attribute_count >= 0)
1538 UNPACK_LDST_ATTRIB_OFS(word->signed_offset));
1543 if (!OP_IS_STORE(word->op))
1544 update_dest(ctx, word->reg);
1546 if (OP_IS_UBO_READ(word->op))
1548 UNPACK_LDST_UBO_OFS(word->signed_offset));
1554 print_load_store_word(disassemble_context *ctx, FILE *fp, uint32_t *word, bool verbose)
1556 midgard_load_store *load_store = (midgard_load_store *) word;
1649 print_texture_barrier(FILE *fp, uint32_t *word)
1651 midgard_texture_barrier_word *barrier = (midgard_texture_barrier_word *) word;
1711 print_texture_word(disassemble_context *ctx, FILE *fp, uint32_t *word,
1714 midgard_texture_word *texture = (midgard_texture_word *) word;
1723 print_texture_barrier(fp, word);
1991 fprintf(fp, "Unknown word type %u:\n", words[i] & 0xF);