diff options
Diffstat (limited to 'src/intel/tools/disasm.c')
-rw-r--r-- | src/intel/tools/disasm.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/intel/tools/disasm.c b/src/intel/tools/disasm.c index 89c711b1d3f..2b51424742d 100644 --- a/src/intel/tools/disasm.c +++ b/src/intel/tools/disasm.c @@ -45,13 +45,15 @@ is_send(uint32_t opcode) } void -gen_disasm_disassemble(struct gen_disasm *disasm, void *assembly, int start, - int end, FILE *out) +gen_disasm_disassemble(struct gen_disasm *disasm, void *assembly, + int start, FILE *out) { struct gen_device_info *devinfo = &disasm->devinfo; bool dump_hex = false; + int offset = start; - for (int offset = start; offset < end;) { + /* This loop exits when send-with-EOT or when opcode is 0 */ + while (true) { brw_inst *insn = assembly + offset; brw_inst uncompacted; bool compacted = brw_inst_cmpt_control(devinfo, insn); |