i965: Fix disassembly of jump targets on Gen7.
Gen7 stores the JIP/UIP bits in different places. Reviewed-by: Eric Anholt <eric@anholt.net>
This commit is contained in:
@@ -1112,14 +1112,19 @@ int brw_disasm (FILE *file, struct brw_instruction *inst, int gen)
|
||||
if (opcode[inst->header.opcode].ndst > 0) {
|
||||
pad (file, 16);
|
||||
err |= dest (file, inst);
|
||||
} else if (gen >= 6 && (inst->header.opcode == BRW_OPCODE_IF ||
|
||||
} else if (gen == 7 && (inst->header.opcode == BRW_OPCODE_ELSE ||
|
||||
inst->header.opcode == BRW_OPCODE_ENDIF ||
|
||||
inst->header.opcode == BRW_OPCODE_WHILE)) {
|
||||
format (file, " %d", inst->bits3.break_cont.jip);
|
||||
} else if (gen == 6 && (inst->header.opcode == BRW_OPCODE_IF ||
|
||||
inst->header.opcode == BRW_OPCODE_ELSE ||
|
||||
inst->header.opcode == BRW_OPCODE_ENDIF ||
|
||||
inst->header.opcode == BRW_OPCODE_WHILE)) {
|
||||
format (file, " %d", inst->bits1.branch_gen6.jump_count);
|
||||
} else if (gen >= 6 && (inst->header.opcode == BRW_OPCODE_BREAK ||
|
||||
inst->header.opcode == BRW_OPCODE_CONTINUE ||
|
||||
inst->header.opcode == BRW_OPCODE_HALT)) {
|
||||
} else if ((gen >= 6 && (inst->header.opcode == BRW_OPCODE_BREAK ||
|
||||
inst->header.opcode == BRW_OPCODE_CONTINUE ||
|
||||
inst->header.opcode == BRW_OPCODE_HALT)) ||
|
||||
(gen == 7 && inst->header.opcode == BRW_OPCODE_IF)) {
|
||||
format (file, " %d %d", inst->bits3.break_cont.uip, inst->bits3.break_cont.jip);
|
||||
} else if (inst->header.opcode == BRW_OPCODE_JMPI) {
|
||||
format (file, " %d", inst->bits3.d);
|
||||
|
||||
Reference in New Issue
Block a user