panfrost: add atomic_cmpxchg opcode
authorItalo Nicola <italonicola@collabora.com>
Thu, 20 Aug 2020 13:35:07 +0000 (13:35 +0000)
committerMarge Bot <eric+marge@anholt.net>
Tue, 1 Sep 2020 21:04:09 +0000 (21:04 +0000)
Signed-off-by: Italo Nicola <italonicola@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6439>

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

index 656881c7ff3efd1495864c5b0e2ed6d881fe2a27..1471603d9649db144baa8465627028453f3dc50f 100644 (file)
@@ -456,6 +456,9 @@ typedef enum {
         midgard_op_atomic_xchg = 0x60,
         midgard_op_atomic_xchg64 = 0x61,
 
+        midgard_op_atomic_cmpxchg = 0x64,
+        midgard_op_atomic_cmpxchg64 = 0x65,
+
         /* Used for compute shader's __global arguments, __local variables (or
          * for register spilling) */
 
index b56d3730babc8f2014c072f0fac6cbddf702928d..ef30523bc1aa39033ac1cc0be15ec7f461e2af78 100644 (file)
@@ -197,6 +197,7 @@ struct mir_ldst_op_props load_store_opcode_props[256] = {
         [midgard_op_atomic_imax] = {"atomic_imax", M32 | LDST_SIDE_FX},
         [midgard_op_atomic_umax] = {"atomic_umax", M32 | LDST_SIDE_FX},
         [midgard_op_atomic_xchg] = {"atomic_xchg", M32 | LDST_SIDE_FX},
+        [midgard_op_atomic_cmpxchg] = {"atomic_cmpxchg", M32 | LDST_SIDE_FX},
 
         [midgard_op_atomic_add64]  = {"atomic_add64",  M64 | LDST_SIDE_FX},
         [midgard_op_atomic_and64]  = {"atomic_and64",  M64 | LDST_SIDE_FX},
@@ -207,6 +208,7 @@ struct mir_ldst_op_props load_store_opcode_props[256] = {
         [midgard_op_atomic_imax64] = {"atomic_imax64", M64 | LDST_SIDE_FX},
         [midgard_op_atomic_umax64] = {"atomic_umax64", M64 | LDST_SIDE_FX},
         [midgard_op_atomic_xchg64] = {"atomic_xchg64", M64 | LDST_SIDE_FX},
+        [midgard_op_atomic_cmpxchg64] = {"atomic_cmpxchg64", M64 | LDST_SIDE_FX},
 
         [midgard_op_ld_uchar]  = {"ld_uchar", M32 | LDST_ADDRESS},
         [midgard_op_ld_char]   = {"ld_char",   M32 | LDST_ADDRESS},