panfrost: Identify un/pack colour opcodes
authorAlyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Wed, 8 Jan 2020 20:11:45 +0000 (15:11 -0500)
committerMarge Bot <eric+marge@anholt.net>
Sat, 18 Jan 2020 14:18:48 +0000 (14:18 +0000)
We still need to identify formats in the disassembler, but this will at
least get the opcode name clear.

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

src/panfrost/midgard/midgard.h
src/panfrost/midgard/midgard_compile.c
src/panfrost/midgard/midgard_ops.c

index 560c1295135ef6ddac530fba77cc09124134f2c5..909a2d12d2ca09fb167aac6eaa87cf266caa89c7 100644 (file)
@@ -391,6 +391,12 @@ midgard_writeout;
 typedef enum {
         midgard_op_ld_st_noop   = 0x03,
 
+        /* Unpack a colour from a native format to fp16 */
+        midgard_op_unpack_colour = 0x05,
+
+        /* Packs a colour from fp16 to a native format */
+        midgard_op_pack_colour   = 0x09,
+
         /* Unclear why this is on the L/S unit, but moves fp32 cube map
          * coordinates in r27 to its cube map texture coordinate destination
          * (e.g r29). */
index f1cf91caeca62704b6a9098bd55d11fafaa3bd29..d536f66449bcdccb8fc55d4dd219d6937405c164 100644 (file)
@@ -210,6 +210,7 @@ M_LOAD(ld_color_buffer_32u);
 M_STORE(st_vary_32);
 M_LOAD(ld_cubemap_coords);
 M_LOAD(ld_compute_id);
+M_LOAD(pack_colour);
 
 static midgard_instruction
 v_branch(bool conditional, bool invert)
index 4d33eaa3da41ab6b49ef742f44e9d4651f56eb58..2f33af066358c9df88945b5bf6361d6d6b937e7c 100644 (file)
@@ -180,6 +180,8 @@ struct mir_op_props alu_opcode_props[256] = {
 #define M64 midgard_reg_mode_64
 
 struct mir_ldst_op_props load_store_opcode_props[256] = {
+        [midgard_op_unpack_colour] = {"unpack_colour", M32},
+        [midgard_op_pack_colour] = {"pack_colour", M32},
         [midgard_op_ld_cubemap_coords] = {"ld_cubemap_coords", M32},
         [midgard_op_ld_compute_id] = {"ld_compute_id", M32},
         [midgard_op_ldst_perspective_division_z] = {"ldst_perspective_division_z", M32},