pan/midgard: Identify 64-bit atomic opcodes
authorAlyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Fri, 18 Oct 2019 12:18:52 +0000 (08:18 -0400)
committerAlyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Sun, 20 Oct 2019 12:02:31 +0000 (12:02 +0000)
They are symmetric to their 32-bit counterparts, just shifted.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
src/panfrost/midgard/midgard.h
src/panfrost/midgard/midgard_ops.c

index f1235ec513039201b51b0f7f4497517f7b8e4f0c..2093f953477437311d266cdbd26c2f1761234bb8 100644 (file)
@@ -409,16 +409,26 @@ typedef enum {
 
         /* val in r27.y, address embedded, outputs result to argument. Invert val for sub. Let val = +-1 for inc/dec. */
         midgard_op_atomic_add = 0x40,
+        midgard_op_atomic_add64 = 0x41,
+
         midgard_op_atomic_and = 0x44,
+        midgard_op_atomic_and64 = 0x45,
         midgard_op_atomic_or = 0x48,
+        midgard_op_atomic_or64 = 0x49,
         midgard_op_atomic_xor = 0x4C,
+        midgard_op_atomic_xor64 = 0x4D,
 
         midgard_op_atomic_imin = 0x50,
+        midgard_op_atomic_imin64 = 0x51,
         midgard_op_atomic_umin = 0x54,
+        midgard_op_atomic_umin64 = 0x55,
         midgard_op_atomic_imax = 0x58,
+        midgard_op_atomic_imax64 = 0x59,
         midgard_op_atomic_umax = 0x5C,
+        midgard_op_atomic_umax64 = 0x5D,
 
         midgard_op_atomic_xchg = 0x60,
+        midgard_op_atomic_xchg64 = 0x61,
 
         /* Used for compute shader's __global arguments, __local variables (or
          * for register spilling) */
index 36e4bc371d15cb439b7d1d2f963bdeccb719f20e..e490c03da73facbb4f885e929cfe57edcea15a63 100644 (file)
@@ -188,6 +188,16 @@ const char *load_store_opcode_names[256] = {
         [midgard_op_atomic_umax] = "atomic_umax",
         [midgard_op_atomic_xchg] = "atomic_xchg",
 
+        [midgard_op_atomic_add64] = "atomic_add64",
+        [midgard_op_atomic_and64] = "atomic_and64",
+        [midgard_op_atomic_or64] = "atomic_or64",
+        [midgard_op_atomic_xor64] = "atomic_xor64",
+        [midgard_op_atomic_imin64] = "atomic_imin64",
+        [midgard_op_atomic_umin64] = "atomic_umin64",
+        [midgard_op_atomic_imax64] = "atomic_imax64",
+        [midgard_op_atomic_umax64] = "atomic_umax64",
+        [midgard_op_atomic_xchg64] = "atomic_xchg64",
+
         [midgard_op_ld_char] = "ld_char",
         [midgard_op_ld_char2] = "ld_char2",
         [midgard_op_ld_short] = "ld_short",