freedreno/ir3: small re-order
authorRob Clark <robdclark@gmail.com>
Wed, 5 Apr 2017 20:02:36 +0000 (16:02 -0400)
committerRob Clark <robdclark@gmail.com>
Fri, 14 Apr 2017 16:46:12 +0000 (12:46 -0400)
Small re-order of switch statement to handled op-code categories in
order.

Signed-off-by: Rob Clark <robdclark@gmail.com>
src/gallium/drivers/freedreno/ir3/ir3_cp.c

index a9023ce571c858e58c311b453f8b6f7a2de0fac5..7bb858df4d4bd7ba7309e063b14fa8475ed37f37 100644 (file)
@@ -111,36 +111,12 @@ static bool valid_flags(struct ir3_instruction *instr, unsigned n,
        if (flags & IR3_REG_RELATIV)
                return false;
 
-       /* clear flags that are 'ok' */
        switch (opc_cat(instr->opc)) {
        case 1:
                valid_flags = IR3_REG_IMMED | IR3_REG_CONST | IR3_REG_RELATIV;
                if (flags & ~valid_flags)
                        return false;
                break;
-       case 5:
-               /* no flags allowed */
-               if (flags)
-                       return false;
-               break;
-       case 6:
-               valid_flags = IR3_REG_IMMED;
-               if (flags & ~valid_flags)
-                       return false;
-
-               if (flags & IR3_REG_IMMED) {
-                       /* doesn't seem like we can have immediate src for store
-                        * instructions:
-                        *
-                        * TODO this restriction could also apply to load instructions,
-                        * but for load instructions this arg is the address (and not
-                        * really sure any good way to test a hard-coded immed addr src)
-                        */
-                       if (is_store(instr) && (n == 1))
-                               return false;
-               }
-
-               break;
        case 2:
                valid_flags = ir3_cat2_absneg(instr->opc) |
                                IR3_REG_CONST | IR3_REG_RELATIV;
@@ -197,6 +173,29 @@ static bool valid_flags(struct ir3_instruction *instr, unsigned n,
                if (flags & (IR3_REG_SABS | IR3_REG_SNEG))
                        return false;
                break;
+       case 5:
+               /* no flags allowed */
+               if (flags)
+                       return false;
+               break;
+       case 6:
+               valid_flags = IR3_REG_IMMED;
+               if (flags & ~valid_flags)
+                       return false;
+
+               if (flags & IR3_REG_IMMED) {
+                       /* doesn't seem like we can have immediate src for store
+                        * instructions:
+                        *
+                        * TODO this restriction could also apply to load instructions,
+                        * but for load instructions this arg is the address (and not
+                        * really sure any good way to test a hard-coded immed addr src)
+                        */
+                       if (is_store(instr) && (n == 1))
+                               return false;
+               }
+
+               break;
        }
 
        return true;