From: Matt Turner Date: Thu, 15 Oct 2015 18:38:43 +0000 (-0700) Subject: i965: Don't consider control flow instructions to have sources. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=9ab45b4df91fadcbbec62828265644d7463b78bb;p=mesa.git i965: Don't consider control flow instructions to have sources. 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. Reviewed-by: Iago Toral Quiroga Reviewed-by: Kenneth Graunke --- diff --git a/src/mesa/drivers/dri/i965/brw_disasm.c b/src/mesa/drivers/dri/i965/brw_disasm.c index 01f1871701b..76b9bed8548 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