diff options
author | Kenneth Graunke <kenneth@whitecape.org> | 2014-02-05 01:32:39 -0800 |
---|---|---|
committer | Kenneth Graunke <kenneth@whitecape.org> | 2014-02-07 19:37:34 -0800 |
commit | 5230655a2ee46ad2215d8d97de2e6a6907cc47e2 (patch) | |
tree | f4bdce665e6fe719bb809bf1520285c9b346f561 /src | |
parent | 8e0a0e4d30be142235c2b2439fe82935b8c67888 (diff) | |
download | external_mesa3d-5230655a2ee46ad2215d8d97de2e6a6907cc47e2.zip external_mesa3d-5230655a2ee46ad2215d8d97de2e6a6907cc47e2.tar.gz external_mesa3d-5230655a2ee46ad2215d8d97de2e6a6907cc47e2.tar.bz2 |
i965: Don't print source registers for Broadwell flow control.
The bits which normally contain the source register descriptions
actually contain the JIP/UIP jump targets, which we already printed.
Interpreting JIP/UIP as source registers results in some really creepy
looking output, like IF statements with acc14.4<0,1,0>UD sources.
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
Diffstat (limited to 'src')
-rw-r--r-- | src/mesa/drivers/dri/i965/gen8_disasm.c | 27 |
1 files changed, 14 insertions, 13 deletions
diff --git a/src/mesa/drivers/dri/i965/gen8_disasm.c b/src/mesa/drivers/dri/i965/gen8_disasm.c index 387bb71..b2ab448 100644 --- a/src/mesa/drivers/dri/i965/gen8_disasm.c +++ b/src/mesa/drivers/dri/i965/gen8_disasm.c @@ -828,10 +828,7 @@ gen8_disassemble(FILE *file, struct gen8_instruction *inst, int gen) pad(file, 64); err |= src2_3src(file, inst); } else { - if (m_opcode[opcode].ndst > 0) { - pad(file, 16); - err |= dest(file, inst); - } else if (opcode == BRW_OPCODE_ENDIF) { + if (opcode == BRW_OPCODE_ENDIF) { format(file, " %d", gen8_jip(inst)); } else if (opcode == BRW_OPCODE_IF || opcode == BRW_OPCODE_ELSE || @@ -840,15 +837,19 @@ gen8_disassemble(FILE *file, struct gen8_instruction *inst, int gen) opcode == BRW_OPCODE_CONTINUE || opcode == BRW_OPCODE_HALT) { format(file, " %d %d", gen8_jip(inst), gen8_uip(inst)); - } - - if (m_opcode[opcode].nsrc > 0) { - pad(file, 32); - err |= src0(file, inst); - } - if (m_opcode[opcode].nsrc > 1) { - pad(file, 48); - err |= src1(file, inst); + } else { + if (m_opcode[opcode].ndst > 0) { + pad(file, 16); + err |= dest(file, inst); + } + if (m_opcode[opcode].nsrc > 0) { + pad(file, 32); + err |= src0(file, inst); + } + if (m_opcode[opcode].nsrc > 1) { + pad(file, 48); + err |= src1(file, inst); + } } } |