pan/bi: Add subword 5/6 pack
authorAlyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Wed, 6 Jan 2021 18:40:31 +0000 (13:40 -0500)
committerMarge Bot <eric+marge@anholt.net>
Fri, 29 Jan 2021 16:55:44 +0000 (16:55 +0000)
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8723>

src/panfrost/bifrost/bi_pack.c

index 2531e26..f4bf7bd 100644 (file)
@@ -710,6 +710,25 @@ bi_pack_t_ec(enum bi_clause_subword word,
                 return bi_pack_tuple_bits(word, tuples, tuple_count, 0, 60);
 }
 
+static uint32_t
+bi_pack_subwords_56(enum bi_clause_subword t,
+                struct bi_packed_tuple *tuples,
+                ASSERTED unsigned tuple_count,
+                uint64_t header, uint64_t ec0,
+                unsigned tuple_subword)
+{
+        switch (t) {
+        case BI_CLAUSE_SUBWORD_HEADER:
+                return (header & ((1 << 30) - 1));
+        case BI_CLAUSE_SUBWORD_RESERVED:
+                return 0;
+        case BI_CLAUSE_SUBWORD_CONSTANT:
+                return (ec0 >> 15) & ((1 << 30) - 1);
+        default:
+                return bi_pack_tuple_bits(t, tuples, tuple_count, tuple_subword * 15, 30);
+        }
+}
+
 static void
 bi_pack_clause(bi_context *ctx, bi_clause *clause,
                 bi_clause *next_1, bi_clause *next_2,