bug 1034: making room for crfbinlog/crfternlogi/crbinlog/crternlogi
[libreriscv.git] / openpower / sv / draft_opcode_tables.mdwn
index 59453e7386d954bd98a551780b154d57f03aded9..06d1067f7af0391c0482f40a05d5692d4734281f 100644 (file)
@@ -9,8 +9,20 @@ ternlog has its own major opcode
 |  29.30 |31| name      | Form |
 | ------ |--| --------- | ---- |
 |   0  0   |Rc| ternlogi  | TLI-Form |
-|   0  1   |  | crternlogi | TLI-Form |
-|   1 iv   |  | grevlogi | TLI-Form |
+|   0  1   |0 | crfternlogi | TLI-Form |
+|   0  1   |1 | crternlogi | TLI-Form |
+|   1 iv   |1 | grevlogi | TLI-Form |
+|0nn1 0    |0 | madd/sub | A-Form |
+|   1 1    |0 | rsvd     | A-Form |
+
+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  |
+
 
 2nd major opcode for other bitmanip: minor opcode allocation
 
@@ -25,6 +37,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 +57,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)  | 
@@ -60,7 +73,8 @@ 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    |
@@ -97,17 +111,18 @@ the [[sv/av_opcodes]])
 | NN | RT | RA  | RB  | 0  |   01  | 0001 110 |Rc| rsvd      |         |
 | NN | RT | RA  | RB  | 0  |   10  | 0001 110 |Rc| rsvd      |         |
 | NN | RT | RA  | RB  | 0  |   11  | 0001 110 |Rc| vec cprop | X-Form  |
-| NN |    |     |     |    |   00  | 0101 110 |0 | crfbinlog | {TODO}  |
-| NN |    |     |     |    |   00  | 0101 110 |1 | rsvd      |         |
+| NN |    |     |     |    |   00  | 0101 110 |0 | crfbinlog | CRB-Form|
+| NN | BT | BA  |BFB//| 0  |   00  | 0101 110 |1 | crbinlog  | X-Form  |
+| NN |    |     |     | 1  |   00  | 0101 110 |1 | rsvd      |         |
 | NN |    |     |     |    |   10  | 0101 110 |Rc| rsvd      |         |
-| NN |    |     |     |    |   -1  | 0101 110 |Rc| rsvd      |         |
-| NN | RT | RA  | RB  | 0  | itype | 1001 110 |Rc| av minmax | X-Form  |
+| NN | RT | RA  | RB  | sm0| sm1 1 | 0101 110 |Rc| shaddw    | 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  |
 | NN | RT | RA  | RB  | 1  |   11  | 1001 110 |Rc| grevlutr  | X-Form  |
-| NN | RT | RA  | RB  | 0  | itype | 1101 110 |Rc| shadd     | X-Form  |
-| NN | RT | RA  | RB  | 1  | itype | 1101 110 |Rc| shadduw   | X-Form  |
+| NN | RT | RA  | RB  | sm0| sm1 0 | 1101 110 |Rc| shadd     | X-Form  |
+| NN | RT | RA  | RB  | sm0| sm1 1 | 1101 110 |Rc| shadduw   | X-Form  |
 | NN | RT | RA  | RB  | 0  | 00    | 0010 110 |Rc| rsvd      |   |
 | NN | RS | RA  | sh  | SH | 00    | 1010 110 |Rc| rsvd      |   |
 | NN | RT | RA  | RB  | 0  | 00    | 0110 110 |Rc| rsvd      |   |
@@ -122,7 +137,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  |