Lines Matching refs:word

705  * subdividing the 128-bit word in 16-bit increments. For 64-bit, we uppercase
1033 print_compact_branch_writeout_field(disassemble_context *ctx, FILE *fp, uint16_t word)
1035 midgard_jmp_writeout_op op = word & 0x7;
1041 memcpy((char *) &br_uncond, (char *) &word, sizeof(br_uncond));
1059 memcpy((char *) &br_cond, (char *) &word, sizeof(br_cond));
1256 print_varying_parameters(FILE *fp, midgard_load_store_word *word)
1258 midgard_varying_params p = midgard_unpack_varying_params(*word);
1341 midgard_load_store_word *word = (midgard_load_store_word *) &data;
1343 print_ld_st_opcode(fp, word->op);
1345 if (word->op == midgard_op_trap) {
1346 fprintf(fp, " 0x%X\n", word->signed_offset);
1352 if (OP_USES_ATTRIB(word->op)) {
1355 (word->op == midgard_op_st_vary_32) ||
1356 (word->op == midgard_op_st_vary_16) ||
1357 (word->op == midgard_op_st_vary_32u) ||
1358 (word->op == midgard_op_st_vary_32i) ||
1359 (word->op == midgard_op_ld_vary_32) ||
1360 (word->op == midgard_op_ld_vary_16) ||
1361 (word->op == midgard_op_ld_vary_32u) ||
1362 (word->op == midgard_op_ld_vary_32i);
1365 (word->op == midgard_op_ld_attr_32) ||
1366 (word->op == midgard_op_ld_attr_16) ||
1367 (word->op == midgard_op_ld_attr_32u) ||
1368 (word->op == midgard_op_ld_attr_32i);
1371 bool is_secondary = (word->index_format >> 1);
1375 } else if (word->op == midgard_op_ld_cubemap_coords || OP_IS_PROJECTION(word->op))
1376 fprintf(fp, ".%s", word->bitsize_toggle ? "f32" : "f16");
1382 if (!OP_IS_STORE(word->op)) {
1383 print_ldst_write_reg(fp, word->reg);
1389 unsigned swizzle = word->swizzle;
1390 if ((OP_IS_REG2REG_LDST(word->op) &&
1391 word->op != midgard_op_lea &&
1392 word->op != midgard_op_lea_image) || OP_IS_ATOMIC(word->op))
1394 print_ldst_mask(fp, word->mask, swizzle);
1397 (word->mask & 0x1) |
1398 ((word->mask & 0x2) << 1) |
1399 ((word->mask & 0x4) << 2) |
1400 ((word->mask & 0x8) << 3);
1402 print_ldst_read_reg(fp, word->reg);
1403 print_vec_swizzle(fp, word->swizzle, midgard_src_passthrough,
1408 if (OP_IS_UBO_READ(word->op)) {
1409 if (word->signed_offset & 1) { /* buffer index imm */
1410 unsigned imm = midgard_unpack_ubo_index_imm(*word);
1414 print_ldst_read_reg(fp, word->arg_reg);
1415 fprintf(fp, ".%c", components[word->arg_comp]);
1419 print_ldst_read_reg(fp, word->index_reg);
1420 fprintf(fp, ".%c", components[word->index_comp]);
1421 if (word->index_shift)
1422 fprintf(fp, " << %u", word->index_shift);
1423 midgard_print_sint(fp, UNPACK_LDST_UBO_OFS(word->signed_offset));
1427 if (OP_HAS_ADDRESS(word->op)) {
1432 if (word->arg_reg != 7 || verbose) {
1433 print_ldst_read_reg(fp, word->arg_reg);
1435 word->bitsize_toggle ? 64 : 32, components[word->arg_comp]);
1439 if ((word->op < midgard_op_atomic_cmpxchg ||
1440 word->op > midgard_op_atomic_cmpxchg64_be) &&
1441 word->index_reg != 0x7) {
1445 print_ldst_read_reg(fp, word->index_reg);
1447 index_format_names[word->index_format],
1448 components[word->index_comp]);
1449 if (word->index_shift)
1450 fprintf(fp, " << %u", word->index_shift);
1453 midgard_print_sint(fp, word->signed_offset);
1457 if (OP_IS_REG2REG_LDST(word->op)) {
1459 print_ldst_read_reg(fp, word->arg_reg);
1460 print_vec_swizzle(fp, word->swizzle, midgard_src_passthrough,
1465 if (OP_IS_ATOMIC(word->op)) {
1466 unsigned src = (word->swizzle >> 2) & 0x7;
1467 unsigned src_comp = word->swizzle & 0x3;
1474 if (word->op >= midgard_op_atomic_cmpxchg &&
1475 word->op <= midgard_op_atomic_cmpxchg64_be) {
1477 print_ldst_read_reg(fp, word->index_reg);
1478 fprintf(fp, ".%c", components[word->index_comp]);
1482 if (OP_IS_SPECIAL(word->op) || OP_USES_ATTRIB(word->op)) {
1484 print_ldst_read_reg(fp, word->index_reg);
1485 fprintf(fp, ".%c", components[word->index_comp]);
1486 if (word->index_shift)
1487 fprintf(fp, " << %u", word->index_shift);
1488 midgard_print_sint(fp, UNPACK_LDST_ATTRIB_OFS(word->signed_offset));
1492 if (OP_USES_ATTRIB(word->op)) {
1494 print_ldst_read_reg(fp, word->arg_reg);
1496 if (OP_IS_IMAGE(word->op))
1497 fprintf(fp, ".u%d", word->bitsize_toggle ? 64 : 32);
1499 fprintf(fp, ".%c", components[word->arg_comp]);
1501 if (word->bitsize_toggle && !OP_IS_IMAGE(word->op))
1502 midgard_print_sint(fp, UNPACK_LDST_VERTEX_OFS(word->signed_offset));
1506 if (OP_IS_PACK_COLOUR(word->op) || OP_IS_UNPACK_COLOUR(word->op)) {
1508 unsigned format_specifier = (word->signed_offset << 4) | word->index_shift;
1516 if (is_op_varying(word->op)) {
1519 if (word->index_reg == 0x7 && ctx->midg_stats.varying_count >= 0)
1521 UNPACK_LDST_ATTRIB_OFS(word->signed_offset));
1524 } else if (is_op_attribute(word->op)) {
1525 if (word->index_reg == 0x7 && ctx->midg_stats.attribute_count >= 0)
1527 UNPACK_LDST_ATTRIB_OFS(word->signed_offset));
1532 if (!OP_IS_STORE(word->op))
1533 update_dest(ctx, word->reg);
1535 if (OP_IS_UBO_READ(word->op))
1537 UNPACK_LDST_UBO_OFS(word->signed_offset));
1543 print_load_store_word(disassemble_context *ctx, FILE *fp, uint32_t *word, bool verbose)
1545 midgard_load_store *load_store = (midgard_load_store *) word;
1638 print_texture_barrier(FILE *fp, uint32_t *word)
1640 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);
1986 fprintf(fp, "Unknown word type %u:\n", words[i] & 0xF);