diff options
author | Rob Clark <[email protected]> | 2018-01-21 12:20:01 -0500 |
---|---|---|
committer | Rob Clark <[email protected]> | 2018-02-10 14:54:58 -0500 |
commit | b2fc94f0745b375b586dbd2685b1c268f4267747 (patch) | |
tree | 9e357b45d69b6826029b24485eb42eec80cf16c5 /src/gallium/drivers/freedreno/ir3/disasm-a3xx.c | |
parent | 1b658533e1109b8ff9a6578a7eb4b390454e7876 (diff) |
freedreno/ir3: add encoding/decoding for (sat) bit
Seems to be there since a3xx, but we always lowered fsat. But we can
shave some instructions, especially in shaders that use lots of
clamp(foo, 0.0, 1.0) by not lowering fsat.
Signed-off-by: Rob Clark <[email protected]>
Diffstat (limited to 'src/gallium/drivers/freedreno/ir3/disasm-a3xx.c')
-rw-r--r-- | src/gallium/drivers/freedreno/ir3/disasm-a3xx.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/gallium/drivers/freedreno/ir3/disasm-a3xx.c b/src/gallium/drivers/freedreno/ir3/disasm-a3xx.c index 1c81c387127..5499e19b446 100644 --- a/src/gallium/drivers/freedreno/ir3/disasm-a3xx.c +++ b/src/gallium/drivers/freedreno/ir3/disasm-a3xx.c @@ -980,18 +980,18 @@ static void print_instr(uint32_t *dwords, int level, int n) * diff'ing.. */ + repeat = instr_repeat(instr); + if (instr->sync) printf("(sy)"); if (instr->ss && ((instr->opc_cat <= 4) || (instr->opc_cat == 7))) printf("(ss)"); if (instr->jmp_tgt) printf("(jp)"); - if (instr->repeat && (instr->opc_cat <= 4)) { - printf("(rpt%d)", instr->repeat); - repeat = instr->repeat; - } else { - repeat = 0; - } + if (instr_sat(instr)) + printf("(sat)"); + if (repeat) + printf("(rpt%d)", repeat); if (instr->ul && ((2 <= instr->opc_cat) && (instr->opc_cat <= 4))) printf("(ul)"); |