r600g: make condition clearer
authorConstantine Kharlamov <Hi-Angel@yandex.ru>
Mon, 20 Mar 2017 12:19:42 +0000 (15:19 +0300)
committerMarek Olšák <marek.olsak@amd.com>
Mon, 20 Mar 2017 16:11:15 +0000 (17:11 +0100)
The second check in the old code looked pretty much unreachable, esp.
because it's not obvious that "max_entries" could be zero. To find out
that it was intentional I had to run some checks, and to dig into
the old versions of the file.

So, rewrite the check to make the intention clear.

v2: s/r600/r600g in the title, and per Dieter Nützel's comment wrap
lines of condition.

Signed-off-by: Constantine Kharlamov <Hi-Angel@yandex.ru>
Signed-off-by: Marek Olšák <marek.olsak@amd.com>
Acked-by: Dieter Nützel <Dieter@nuetzel-hh.de>
Tested-by: Dieter Nützel <Dieter@nuetzel-hh.de>
src/gallium/drivers/r600/r600_asm.c

index f85993d45118146be388b217df23dbd43952fe41..3dcbde0fe5b311638a1676b9b5cf45673373854b 100644 (file)
@@ -315,7 +315,7 @@ static int is_alu_any_unit_inst(struct r600_bytecode *bc, struct r600_bytecode_a
 static int is_nop_inst(struct r600_bytecode *bc, struct r600_bytecode_alu *alu)
 {
        return alu->op == ALU_OP0_NOP;
-}              
+}
 
 static int assign_alu_units(struct r600_bytecode *bc, struct r600_bytecode_alu *alu_first,
                            struct r600_bytecode_alu *assignment[5])
@@ -1688,11 +1688,13 @@ int r600_bytecode_build(struct r600_bytecode *bc)
        unsigned addr;
        int i, r;
 
-       if (!bc->nstack) // If not 0, Stack_size already provided by llvm
-               bc->nstack = bc->stack.max_entries;
-
-       if ((bc->type == PIPE_SHADER_VERTEX || bc->type == PIPE_SHADER_TESS_EVAL || bc->type == PIPE_SHADER_TESS_CTRL) && !bc->nstack) {
-               bc->nstack = 1;
+       if (!bc->nstack) { // If not 0, Stack_size already provided by llvm
+               if (bc->stack.max_entries)
+                       bc->nstack = bc->stack.max_entries;
+               else if (bc->type == PIPE_SHADER_VERTEX ||
+                        bc->type == PIPE_SHADER_TESS_EVAL ||
+                        bc->type == PIPE_SHADER_TESS_CTRL)
+                       bc->nstack = 1;
        }
 
        /* first path compute addr of each CF block */