summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorKenneth Graunke <kenneth@whitecape.org>2014-02-05 01:32:39 -0800
committerKenneth Graunke <kenneth@whitecape.org>2014-02-07 19:37:34 -0800
commit5230655a2ee46ad2215d8d97de2e6a6907cc47e2 (patch)
treef4bdce665e6fe719bb809bf1520285c9b346f561 /src
parent8e0a0e4d30be142235c2b2439fe82935b8c67888 (diff)
downloadexternal_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.c27
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);
+ }
}
}