diff options
author | Alyssa Rosenzweig <[email protected]> | 2019-10-18 08:18:52 -0400 |
---|---|---|
committer | Alyssa Rosenzweig <[email protected]> | 2019-10-20 12:02:31 +0000 |
commit | d49fdca229b35577c9e9168c09c9c2ea6c6b9907 (patch) | |
tree | bef63291c09e623e19b1d0535083742e47d0c065 /src | |
parent | 6601570ead5dbe850ea14037fc9d04e96959bfc6 (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')
-rw-r--r-- | src/panfrost/midgard/midgard.h | 10 | ||||
-rw-r--r-- | src/panfrost/midgard/midgard_ops.c | 10 |
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", |