From d49fdca229b35577c9e9168c09c9c2ea6c6b9907 Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Fri, 18 Oct 2019 08:18:52 -0400 Subject: [PATCH] pan/midgard: Identify 64-bit atomic opcodes They are symmetric to their 32-bit counterparts, just shifted. Signed-off-by: Alyssa Rosenzweig --- src/panfrost/midgard/midgard.h | 10 ++++++++++ src/panfrost/midgard/midgard_ops.c | 10 ++++++++++ 2 files changed, 20 insertions(+) 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", -- 2.30.2