diff options
author | Vadim Girlin <vadimgirlin@gmail.com> | 2012-12-15 18:50:21 +0400 |
---|---|---|
committer | Vadim Girlin <vadimgirlin@gmail.com> | 2013-01-13 21:58:45 +0400 |
commit | 043a9939a27c51db86c3799b3a13cf0027075837 (patch) | |
tree | 6f1cb172157c15946b63ce378b4aa78d8f8dada5 | |
parent | bb1226add8669f439f65544ce843609746ae42c4 (diff) |
r600g/opt: add MUL_IEEE and predicate support for disasm
-rw-r--r-- | src/gallium/drivers/r600/opt_dump.c | 15 |
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); |