pan/bi: List ADD classes in bi_pack_add
authorAlyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Wed, 18 Mar 2020 15:08:07 +0000 (11:08 -0400)
committerMarge Bot <eric+marge@anholt.net>
Thu, 19 Mar 2020 03:23:07 +0000 (03:23 +0000)
Handling will be... somewhat tricky.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4242>

src/panfrost/bifrost/bi_pack.c

index 325bd30a83ad59c5516610fc0ddc115d207f6bca..a2bb6fed25cf424e10e32686f410420bd78ec26e 100644 (file)
@@ -348,8 +348,38 @@ bi_pack_fma(bi_clause *clause, bi_bundle bundle, struct bi_registers *regs)
 static unsigned
 bi_pack_add(bi_clause *clause, bi_bundle bundle, struct bi_registers *regs)
 {
-        /* TODO */
-        return BIFROST_ADD_NOP;
+        if (!bundle.add)
+                return BIFROST_ADD_NOP;
+
+        switch (bundle.add->type) {
+        case BI_ADD:
+        case BI_ATEST:
+        case BI_BRANCH:
+        case BI_CMP:
+        case BI_BLEND:
+        case BI_BITWISE:
+        case BI_CONVERT:
+        case BI_DISCARD:
+        case BI_FREXP:
+        case BI_ISUB:
+        case BI_LOAD:
+        case BI_LOAD_UNIFORM:
+        case BI_LOAD_ATTR:
+        case BI_LOAD_VAR:
+        case BI_LOAD_VAR_ADDRESS:
+        case BI_MINMAX:
+        case BI_MOV:
+        case BI_SHIFT:
+        case BI_STORE:
+        case BI_STORE_VAR:
+        case BI_SPECIAL:
+        case BI_SWIZZLE:
+        case BI_TEX:
+        case BI_ROUND:
+                return BIFROST_ADD_NOP;
+        default:
+                unreachable("Cannot encode class as ADD");
+        }
 }
 
 struct bi_packed_bundle {