summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVadim Girlin <vadimgirlin@gmail.com>2012-12-15 18:50:21 +0400
committerVadim Girlin <vadimgirlin@gmail.com>2013-01-13 21:58:45 +0400
commit043a9939a27c51db86c3799b3a13cf0027075837 (patch)
tree6f1cb172157c15946b63ce378b4aa78d8f8dada5
parentbb1226add8669f439f65544ce843609746ae42c4 (diff)
r600g/opt: add MUL_IEEE and predicate support for disasm
-rw-r--r--src/gallium/drivers/r600/opt_dump.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/src/gallium/drivers/r600/opt_dump.c b/src/gallium/drivers/r600/opt_dump.c
index 3d39705ec5..932fd9b5a2 100644
--- a/src/gallium/drivers/r600/opt_dump.c
+++ b/src/gallium/drivers/r600/opt_dump.c
@@ -38,7 +38,7 @@
static char * chans = "xyzwt";
-#define R600_DISASM_ARGS_OFFSET 16
+#define R600_DISASM_ARGS_OFFSET 20
int _r600_opt_dump_level = -1;
@@ -82,6 +82,7 @@ char * eg_alu_op2_inst_names[256] =
[EG_V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_SETE]= "SETE",
[EG_V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_ADD] = "ADD",
[EG_V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_MUL] = "MUL",
+ [EG_V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_MUL_IEEE] = "MUL_IEEE",
[EG_V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_KILLGT] = "KILLGT",
[EG_V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_MOV] = "MOV",
[EG_V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_INTERP_XY] = "INTERP_XY",
@@ -576,6 +577,14 @@ void dump_alu(struct shader_info * info, int level, struct r600_bytecode_alu * a
R600_DUMP( "%c ", alu->last ? '*' : ' ');
+ fprintf(stderr, alu->update_pred ? "UP " : " ");
+
+ switch (alu->pred_sel) {
+ case 2: fprintf(stderr, "0 "); break;
+ case 3: fprintf(stderr, "1 "); break;
+ default: fprintf(stderr, " "); break;
+ }
+
if (alu->is_op3) {
pn = eg_alu_op3_inst_names[alu->inst];
@@ -1157,10 +1166,10 @@ void dump_bytecode(struct shader_info * info)
id++;
if (new_alu_group) {
- fprintf(stderr, "\t\t%3d\t", ngroup);
+ fprintf(stderr, "\t\t%4d ", ngroup);
new_alu_group = 0;
} else {
- fprintf(stderr, "\t\t\t");
+ fprintf(stderr, "\t\t ");
}
dump_alu(info, level, alu);