panfrost: gen_pack: Add pan_{unpack,print}() helpers
authorBoris Brezillon <boris.brezillon@collabora.com>
Sat, 5 Sep 2020 16:04:43 +0000 (18:04 +0200)
committerAlyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Mon, 21 Sep 2020 11:34:47 +0000 (07:34 -0400)
And use them in pandecode.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6797>

src/panfrost/lib/decode.c
src/panfrost/lib/gen_pack.py

index 6b90324..2d8dc6c 100644 (file)
@@ -59,9 +59,8 @@ static void pandecode_swizzle(unsigned swizzle, enum mali_format format);
 
 #define DUMP_CL(title, T, cl, indent) {\
         fprintf(pandecode_dump_stream, "%s\n", title); \
-        struct MALI_ ## T temp; \
-        MALI_ ## T ## _unpack((const uint8_t *) cl, &temp); \
-        MALI_ ## T ## _print(pandecode_dump_stream, &temp, indent * 2); \
+        pan_unpack(cl, T, temp); \
+        pan_print(pandecode_dump_stream, T, temp, indent * 2); \
 }
 
 #define MAP_ADDR(T, addr, cl) \
index 3cf96eb..ffa8e01 100644 (file)
@@ -138,6 +138,13 @@ __gen_unpack_padded(const uint8_t *restrict cl, uint32_t start, uint32_t end)
         ({ MALI_ ## T ## _pack((uint32_t *) (dst), &name);  \\
            _loop_terminate = NULL; }))
 
+#define pan_unpack(src, T, name)                        \\
+        struct MALI_ ## T name;                         \\
+        MALI_ ## T ## _unpack((uint8_t *)(src), &name)
+
+#define pan_print(fp, T, var, indent)                   \\
+        MALI_ ## T ## _print(fp, &(var), indent)
+
 """
 
 def to_alphanum(name):