move madd/sub to PO5
[libreriscv.git] / openpower / sv / draft_opcode_tables.mdwn
index 527962620e3dbb404230d7d49d47347d01287ec2..ef4a5dee013197ec85b0d1a04b525ed76ac1329a 100644 (file)
@@ -25,6 +25,7 @@ ternlog has its own major opcode
 |  110   |Rc| 1/2-op    |
 |  111   |  | bmrevi   |
 
+`minmax` is allocated to PO 19 XO `000011`
 
 1-op and variants
 
@@ -44,7 +45,7 @@ ternlog has its own major opcode
 | RT   | RA   | RB   | shuf  | shuffle | 
 | RT   | RA   | RB   | unshuf| shuffle | 
 | RT   | RA   | RB   | width | xperm  | 
-| RT   | RA   | RB   | type | av minmax | 
+| RT   | RA   | RB   | MMM   | `minmax` |
 | RT   | RA   | RB   |      | av abs avgadd  | 
 | RT   | RA   | RB   | type | vmask ops | 
 | RT   | RA   | RB   | type | abs accumulate (overwrite)  | 
@@ -55,12 +56,21 @@ ternlog has its own major opcode
 * GF mul-add
 * bitmask-reverse
 
+PO5 (temporary)
+
+| 0.5|6.10|11.15|16.20 |21..25   | 26....30  |31| name     | Form    |
+| -- | -- | --- | ---  | -----   | --------  |--| ------   | -------- |
+| NN | RT | RA  | RB   | RC      | /  00  10 |0 | maddsubrs | A-Form  |
+| NN | RT | RA  | RB   | RC      | /  01  10 |0 | maddrs    | A-Form  |
+| NN | RT | RA  | RB   | RC      | /  10  10 |0 | msubrs    | A-Form  |
+
 TODO: convert all instructions to use RT and not RS
 
 | 0.5|6.10|11.15|16.20 |21..25   | 26....30  |31| name     | Form    |
 | -- | -- | --- | ---  | -----   | --------  |--| ------   | -------- |
 | NN | RT | RA  |it/im57|im0-4   | 0  00  00 |0 | xpermi  | TODO-Form  |
-| NN |    |     |      |         | -  --  00 |0 | rsvd     | rsvd  |
+| NN |    |     |      |         | -  10  00 |0 | svshape3 | rsvd  |
+| NN |    |     |      |         | -  11  00 |0 | svshape4 | rsvd  |
 | NN | RT | RA  | RB   | RC      | nh 00  00 |1 | binlut |  VA-Form      |
 | NN | RT | RA  | RB   | /BFA/   | 0  01  00 |1 | bincrflut  | VA-Form     |
 | NN |    |     |      |         | 1  01  00 |1 | svindex    | SVI-Form    |
@@ -101,7 +111,7 @@ the [[sv/av_opcodes]])
 | NN |    |     |     |    |   00  | 0101 110 |1 | rsvd      |         |
 | NN |    |     |     |    |   10  | 0101 110 |Rc| rsvd      |         |
 | NN | RT | RA  | RB  | sm0| sm1 1 | 0101 110 |Rc| shaddw    | X-Form  |
-| NN | RT | RA  | RB  | 0  | itype | 1001 110 |Rc| av minmax | X-Form  |
+| NN |    |     |     | 0  |       | 1001 110 |Rc| rsvd      |         |
 | NN | RT | RA  | RB  | 1  |   00  | 1001 110 |Rc| av abss   | X-Form  |
 | NN | RT | RA  | RB  | 1  |   01  | 1001 110 |Rc| av absu   | X-Form  |
 | NN | RT | RA  | RB  | 1  |   10  | 1001 110 |Rc| av avgadd | X-Form  |
@@ -122,7 +132,7 @@ the [[sv/av_opcodes]])
 | NN | RS | RA  | RB  | 0  | 10    | 0010 110 |Rc| bmator    | X-Form  |
 | NN | RS | RA  | RB  | 0  | 10    | 0110 110 |Rc| bmatand   | X-Form  |
 | NN | RS | RA  | RB  | 0  | 10    | 1010 110 |Rc| bmatxor   | X-Form  |
-| NN | RS | RA  | RB  | 0  | 10    | 1110 110 |Rc| bmatflip  | X-Form  |
+| NN | RS | RA  |     | 0  | 10    | 1110 110 |  | bmatflip  | X-Form  |
 | NN | RT | RA  | RB  | 1  | 10    | 0010 110 |Rc| xpermn    | X-Form  |
 | NN | RT | RA  | RB  | 1  | 10    | 0110 110 |Rc| xpermb    | X-Form  |
 | NN | RT | RA  | RB  | 1  | 10    | 1010 110 |Rc| xpermh    | X-Form  |