|funct3 | jump target | op | CJ |
+----------+--------------------------------------------------+-------+--------+
-* 16 bits RVC to go into RV128 "MAJOR OPCODE 2" and "MAJOR OPCODE 3".
- RVC op[1:0], bit[1] selects OPCODE-2 or OPCODE-3, therefore
- 17 bits remain in the 32-bit opcode space
-* 32-bit opcode prefix takes 7 bits, therefore 10 bits remain to fit
+* top 14 bits of RVC to go into "MAJOR OPCODE 0-2" to represent
+ RVC op[1:0] == 0b00, 0b01 and 0b02. Therefore,
+ 18 bits remain in the 32-bit opcode space
+* 32-bit opcode prefix takes 7 bits, therefore 11 bits remain to fit
a SVPrefix.
-* compared to P48, 11 bits are needed.
-* however, with the exception of LD/ST (and C.MV) these all provide *three*
- operands: rs1, rs2 and rs3.
-* therefore, 1 field can go, and that just leaves what to do with LD/ST
- and C.MV
-* should twin-predication be sacrificed?
-* should one of the vectorisation modes be sacrificed?
-* is there room in ohe of the other "MAJOR CUSTOM OPCODEs" (0,1) to
- fit the "other" mode somehow?
-* can one of the vew bits be sacrificed instead, reducing vitp7 by 1 bit?
+* compared to P48, 11 bits are needed, and we have a match.
P48:
P32C:
-+---------------+--------+--------+----------+--------+-------------+------+--------+--------+
-| Encoding | 17 | 16 | 15 | 13 | 12 | 11:7 | 6 | 5:0 |
-+---------------+--------+--------+----------+--------+-------------+------+--------+--------+
-| P32C-CL-type | rd[5] | rs1[5] | vitp7[6] | vs1 | vitp7[5:0] | *Rsvd* | 011111 |
-+---------------+--------+--------+----------+--------+--------------------+--------+--------+
-| P32C-CS-type |vitp7[6]| rs1[5] | rs2[5] | vs1 | vitp7[5:0] | *Rsvd* | 011111 |
-+---------------+--------+--------+----------+--------+-------------+------+--------+--------+
-| P32C-FR-type | rd[5] | rs1[5] | rs2[5] | vs1 | *Rsvd* | vtp5 | *Rsvd* | 011111 |
-+---------------+--------+--------+----------+--------+-------------+------+--------+--------+
-| P32C-FR-type | rd[5] | rs1[5] | rs2[5] | vs1 | *Rsvd* | vtp5 | *Rsvd* | 011111 |
-+---------------+--------+--------+----------+--------+-------------+------+--------+--------+
-| P32C-CR-type | rd[5] | rs1[5] | rs2[5] | vs1 | vitp6 | *Rsvd* | 011111 |
-+---------------+--------+--------+----------+--------+--------------------+--------+--------+
-| P32C-CA-type | rd[5] | rs1[5] | vitp7[6] | vs1 | vitp7[5:0] | *Rsvd* | 011111 |
-+---------------+--------+--------+----------+--------+--------------------+--------+--------+
-| P32C-CU-type | rd[5] | *Rsvd* | *Rsvd* | *Rsvd* | vitp6 | *Rsvd* | 011111 |
-+---------------+--------+--------+----------+--------+--------------------+--------+--------+
+P48:
+
++---------------+--------+--------+----------+-----+--------+-------------+------+--------+--------+
+| Encoding | 17 | 16 | 15 | 14 | 13 | 12 | 11:7 | 6 | 5:0 |
++---------------+--------+--------+----------+-----+--------+-------------+------+--------+--------+
+| P32C-CL-type | rd[5] | rs1[5] | vitp7[6] | vd | vs1 | vitp7[5:0] | *Rsvd* | 011111 |
++---------------+--------+--------+----------+-----+--------+--------------------+--------+--------+
+| P32C-CS-type |vitp7[6]| rs1[5] | rs2[5] | vs2 | vs1 | vitp7[5:0] | *Rsvd* | 011111 |
++---------------+--------+--------+----------+-----+--------+--------------------+--------+--------+
+| P32C-CR-type | rd[5] | rs1[5] | *Rsvd* | vd | vs1 | vitp6 | *Rsvd* | 011111 |
++---------------+--------+--------+----------+-----+--------+--------------------+--------+--------+
+| P32C-CI1-type | rd[5] | rs1[5] | vitp7[6] | vd | vs1 | vitp7[5:0] | *Rsvd* | 011111 |
++---------------+--------+--------+----------+-----+--------+--------------------+--------+--------+
+| P32C-CI2-type | rd[5] | *Rsvd* | *Rsvd* | vd | *Rsvd* | vitp6 | *Rsvd* | 011111 |
++---------------+--------+--------+----------+-----+--------+--------------------+--------+--------+
+| P32C-CMv-type | rd[5] | rs1[5] | vitp7[6] | vd | vs1 | vitp7[5:0] | *Rsvd* | 011111 |
++---------------+--------+--------+----------+-----+--------+--------------------+--------+--------+
Questions
=========