src->size = arr->length;
src->array.id = arr->id;
src->array.offset = n;
+ src->array.base = INVALID_REG;
if (address)
ir3_instr_set_address(mov, address);
dst->size = arr->length;
dst->array.id = arr->id;
dst->array.offset = n;
+ dst->array.base = INVALID_REG;
arr->last_write = dst;
dst->size = arr->length;
dst->array.id = arr->id;
dst->array.offset = n;
+ dst->array.base = INVALID_REG;
ir3_reg_create(mov, 0, IR3_REG_SSA | flags)->def = src->regs[0];
if (address)
print_ssa_def_name(reg);
}
- if (reg->num != INVALID_REG)
- printf("("SYN_REG("r%u.%c")")", reg_num(reg), "xyzw"[reg_comp(reg)]);
+ if (reg->num != INVALID_REG && !(reg->flags & IR3_REG_ARRAY))
+ printf("("SYN_REG("r%u.%c")")", reg_num(reg), "xyzw"[reg_comp(reg)]);
}
static void print_reg_name(struct ir3_instruction *instr, struct ir3_register *reg)
print_ssa_name(reg, false);
}
printf(SYN_ARRAY("]"));
+ if (reg->array.base != INVALID_REG)
+ printf("("SYN_REG("r%u.%c")")", reg->array.base >> 2,
+ "xyzw"[reg->array.base & 0x3]);
} else if (reg->flags & IR3_REG_SSA) {
print_ssa_name(reg, reg->flags & IR3_REG_DEST);
} else if (reg->flags & IR3_REG_RELATIV) {