it has only 32-bit and 64-bit atomic operations.
+read operations
+
+ | 00000 | RT, RT+1 | mem(EA,s) | Fetch and Add |
+ | 00001 | RT, RT+1 | mem(EA,s) | Fetch and XOR |
+ | 00010 | RT, RT+1 | mem(EA,s) | Fetch and OR |
+ | 00011 | RT, RT+1 | mem(EA,s) | Fetch and AND |
+ | 00100 | RT, RT+1 | mem(EA,s) | Fetch and Maximum Unsigned |
+ | 00101 | RT, RT+1 | mem(EA,s) | Fetch and Maximum Signed |
+ | 00110 | RT, RT+1 | mem(EA,s) | Fetch and Minimum Unsigned |
+ | 00111 | RT, RT+1 | mem(EA,s) | Fetch and Minimum Signed |
+ | 01000 | RT, RT+1 | mem(EA,s) | Swap |
+ | 10000 | RT, RT+1, RT+2 | mem(EA,s) | Compare and Swap Not Equal |
+ | 11000 | RT | mem(EA,s) mem(EA+s, s) | Fetch and Increment Bounded |
+ | 11001 | RT | mem(EA,s) mem(EA+s, s) | Fetch and Increment Equal |
+ | 11100 | RT | mem(EA-s,s) mem(EA, s) | Fetch and Decrement Bounded |
+
These operations are recognised as being part of the
OpenCAPI Specification.
the operations it has that I was going to propose: