From: Luke Kenneth Casson Leighton Date: Fri, 8 Jul 2022 21:03:09 +0000 (+0100) Subject: sort atomic table X-Git-Tag: opf_rfc_ls005_v1~1238 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=da1604d76cf181d15ffe67dab63ceb386b0c114c;p=libreriscv.git sort atomic table --- diff --git a/openpower/atomics.mdwn b/openpower/atomics.mdwn index 2d4ea841c..88ddd1e99 100644 --- a/openpower/atomics.mdwn +++ b/openpower/atomics.mdwn @@ -158,31 +158,35 @@ atomic memory operations read functions v3.1 book II section 4.5.1 p1071 - | 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 | +|opcode| regs | memory | description | +|------| -------------- | -----------------------| --------------------------- | +|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 | store functions - | 00000 RS mem(EA,s) Store Add - | 00001 RS mem(EA,s) Store XOR - | 00010 RS mem(EA,s) Store OR - | 00011 RS mem(EA,s) Store AND - | 00100 RS mem(EA,s) Store Maximum Unsigned - | 00101 RS mem(EA,s) Store Maximum Signed - | 00110 RS mem(EA,s) Store Minimum Unsigned - | 00111 RS mem(EA,s) Store Minimum Signed - | 11000 RS mem(EA,s) Store Twin - -These functions are recognised as being part of the +|opcode| regs | memory | description | +|------| -----| ----------| --------------------------- | +|00000 | RS | mem(EA,s) | Store Add | +|00001 | RS | mem(EA,s) | Store XOR | +|00010 | RS | mem(EA,s) | Store OR | +|00011 | RS | mem(EA,s) | Store AND | +|00100 | RS | mem(EA,s) | Store Maximum Unsigned | +|00101 | RS | mem(EA,s) | Store Maximum Signed | +|00110 | RS | mem(EA,s) | Store Minimum Unsigned | +|00111 | RS | mem(EA,s) | Store Minimum Signed | +|11000 | RS | mem(EA,s) | Store Twin | + +These functions are also recognised as being part of the OpenCAPI Specification.