summaryrefslogtreecommitdiffstats
path: root/src/panfrost
diff options
context:
space:
mode:
authorAlyssa Rosenzweig <[email protected]>2019-10-18 08:18:52 -0400
committerAlyssa Rosenzweig <[email protected]>2019-10-20 12:02:31 +0000
commitd49fdca229b35577c9e9168c09c9c2ea6c6b9907 (patch)
treebef63291c09e623e19b1d0535083742e47d0c065 /src/panfrost
parent6601570ead5dbe850ea14037fc9d04e96959bfc6 (diff)
pan/midgard: Identify 64-bit atomic opcodes
They are symmetric to their 32-bit counterparts, just shifted. Signed-off-by: Alyssa Rosenzweig <[email protected]>
Diffstat (limited to 'src/panfrost')
-rw-r--r--src/panfrost/midgard/midgard.h10
-rw-r--r--src/panfrost/midgard/midgard_ops.c10
2 files changed, 20 insertions, 0 deletions
diff --git a/src/panfrost/midgard/midgard.h b/src/panfrost/midgard/midgard.h
index f1235ec5130..2093f953477 100644
--- a/src/panfrost/midgard/midgard.h
+++ b/src/panfrost/midgard/midgard.h
@@ -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) */
diff --git a/src/panfrost/midgard/midgard_ops.c b/src/panfrost/midgard/midgard_ops.c
index 36e4bc371d1..e490c03da73 100644
--- a/src/panfrost/midgard/midgard_ops.c
+++ b/src/panfrost/midgard/midgard_ops.c
@@ -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",