If horizontal stride of a dest operand is four, before we fix it, the disassembler outputs wrong mov(8) g20<3>UB g18<8,8,1>F; after we fix it, the output is correct. mov(8) g20<4>UB g18<8,8,1>F; --- src/disasm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/disasm.c b/src/disasm.c index 1ec6ae5..e52e3d3 100644 --- a/src/disasm.c +++ b/src/disasm.c @@ -469,7 +469,7 @@ static int dest (FILE *file, struct brw_instruction *inst) return 0; if (inst->bits1.da1.dest_subreg_nr) format (file, ".%d", inst->bits1.da1.dest_subreg_nr); - format (file, "<%d>", inst->bits1.da1.dest_horiz_stride); + format (file, "<%s>", horiz_stride[inst->bits1.da1.dest_horiz_stride]); err |= control (file, "dest reg encoding", reg_encoding, inst->bits1.da1.dest_reg_type, NULL); } else @@ -480,7 +480,7 @@ static int dest (FILE *file, struct brw_instruction *inst) if (inst->bits1.ia1.dest_indirect_offset) format (file, " %d", inst->bits1.ia1.dest_indirect_offset); string (file, "]"); - format (file, "<%d>", inst->bits1.ia1.dest_horiz_stride); + format (file, "<%s>", horiz_stride[inst->bits1.ia1.dest_horiz_stride]); err |= control (file, "dest reg encoding", reg_encoding, inst->bits1.ia1.dest_reg_type, NULL); } } -- 1.7.10.4