On Wed, 2015-10-21 at 15:58 -0700, Matt Turner wrote: > And why did IFF have a destination? > > I suspect that once upon a time the disassembler used this information > to know which fields to find the jump targets in. The jump targets have > moved, so the disassembler has to know how to handle these > per-generation anyway.
Control-flow instructions are explicitly handled by the disassembler and don't use .nsrc or .ndst at all, so I think this should be fine. The only other place where we use .ndst is the the check for compr4 in gen < 6, but IFF would not fall in that case anyway. Reviewed-by: Iago Toral Quiroga <ito...@igalia.com> > --- > src/mesa/drivers/dri/i965/brw_disasm.c | 16 ++++++++-------- > 1 file changed, 8 insertions(+), 8 deletions(-) > > diff --git a/src/mesa/drivers/dri/i965/brw_disasm.c > b/src/mesa/drivers/dri/i965/brw_disasm.c > index c2dac7c..29056ed 100644 > --- a/src/mesa/drivers/dri/i965/brw_disasm.c > +++ b/src/mesa/drivers/dri/i965/brw_disasm.c > @@ -90,20 +90,20 @@ const struct opcode_desc opcode_descs[128] = { > [BRW_OPCODE_NOP] = { .name = "nop", .nsrc = 0, .ndst = 0 }, > [BRW_OPCODE_NENOP] = { .name = "nenop", .nsrc = 0, .ndst = 0 }, > [BRW_OPCODE_JMPI] = { .name = "jmpi", .nsrc = 0, .ndst = 0 }, > - [BRW_OPCODE_IF] = { .name = "if", .nsrc = 2, .ndst = 0 }, > - [BRW_OPCODE_IFF] = { .name = "iff", .nsrc = 2, .ndst = 1 }, > - [BRW_OPCODE_WHILE] = { .name = "while", .nsrc = 2, .ndst = 0 }, > - [BRW_OPCODE_ELSE] = { .name = "else", .nsrc = 2, .ndst = 0 }, > - [BRW_OPCODE_BREAK] = { .name = "break", .nsrc = 2, .ndst = 0 }, > - [BRW_OPCODE_CONTINUE] = { .name = "cont", .nsrc = 1, .ndst = 0 }, > - [BRW_OPCODE_HALT] = { .name = "halt", .nsrc = 1, .ndst = 0 }, > + [BRW_OPCODE_IF] = { .name = "if", .nsrc = 0, .ndst = 0 }, > + [BRW_OPCODE_IFF] = { .name = "iff", .nsrc = 0, .ndst = 0 }, > + [BRW_OPCODE_WHILE] = { .name = "while", .nsrc = 0, .ndst = 0 }, > + [BRW_OPCODE_ELSE] = { .name = "else", .nsrc = 0, .ndst = 0 }, > + [BRW_OPCODE_BREAK] = { .name = "break", .nsrc = 0, .ndst = 0 }, > + [BRW_OPCODE_CONTINUE] = { .name = "cont", .nsrc = 0, .ndst = 0 }, > + [BRW_OPCODE_HALT] = { .name = "halt", .nsrc = 0, .ndst = 0 }, > // [BRW_OPCODE_MSAVE] = { .name = "msave", .nsrc = 1, .ndst = 1 }, > // [BRW_OPCODE_PUSH] = { .name = "push", .nsrc = 1, .ndst = 1 }, > // [BRW_OPCODE_MREST] = { .name = "mrest", .nsrc = 1, .ndst = 1 }, > // [BRW_OPCODE_POP] = { .name = "pop", .nsrc = 2, .ndst = 0 }, > [BRW_OPCODE_WAIT] = { .name = "wait", .nsrc = 1, .ndst = 0 }, > [BRW_OPCODE_DO] = { .name = "do", .nsrc = 0, .ndst = 0 }, > - [BRW_OPCODE_ENDIF] = { .name = "endif", .nsrc = 2, .ndst = 0 }, > + [BRW_OPCODE_ENDIF] = { .name = "endif", .nsrc = 0, .ndst = 0 }, > }; > > static bool _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev