Mesa (master): freedreno/ir3: small re-order

Rob Clark robclark at kemper.freedesktop.org
Fri Apr 14 16:46:45 UTC 2017


Module: Mesa
Branch: master
Commit: b5cc88af5ecfc4872e2344832d2a7280cedcf010
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=b5cc88af5ecfc4872e2344832d2a7280cedcf010

Author: Rob Clark <robdclark at gmail.com>
Date:   Wed Apr  5 16:02:36 2017 -0400

freedreno/ir3: small re-order

Small re-order of switch statement to handled op-code categories in
order.

Signed-off-by: Rob Clark <robdclark at gmail.com>

---

 src/gallium/drivers/freedreno/ir3/ir3_cp.c | 47 +++++++++++++++---------------
 1 file changed, 23 insertions(+), 24 deletions(-)

diff --git a/src/gallium/drivers/freedreno/ir3/ir3_cp.c b/src/gallium/drivers/freedreno/ir3/ir3_cp.c
index a9023ce571..7bb858df4d 100644
--- a/src/gallium/drivers/freedreno/ir3/ir3_cp.c
+++ b/src/gallium/drivers/freedreno/ir3/ir3_cp.c
@@ -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;




More information about the mesa-commit mailing list