[libre-riscv-dev] Instruction sorta-prefixes for easier high-register access
Luke Kenneth Casson Leighton
lkcl at lkcl.net
Mon Jan 21 01:39:48 GMT 2019
better at https://libre-riscv.org/3d_gpu/microarchitecture/#prefixes
<pre>
| 3 | 2 | 1 | 0 |
| ---------------- | ---------------- | ---------------- | ---------------- |
| | xxxxxxxxxxxxxxaa | xxxxxxxxxxxxxxaa | XXXXXXXXXX011111 |
| | xxxxxxxxxxxxxxxx | xxxxxxxxxxxbbb11 | XXXXXXXXXX011111 |
| | xxxxxxxxxxxxxxaa | XXXXXXXXXX011111 | XXXXXXXXXX011111 |
| xxxxxxxxxxxxxxaa | xxxxxxxxxxxxxxaa | XXXXXXXXXXXXXXXX | XXXXXXXXX0111111 |
| xxxxxxxxxxxxxxxx | xxxxxxxxxxxbbb11 | XXXXXXXXXXXXXXXX | XXXXXXXXX0111111 |
</pre>
bits available for different uses, and instructions that fit them:
* 48b: 10 C C
* 48b: 10 32-bit
* 48b: 20 C
* 64b: 25 C C
* 64b: 25 32-bit
64-bit with 3 C instructions or 1C plus a 32 or a 32 plus 1C... too complicated.
still thinking about these:
2x16-bit / 32-bit:
<pre>
| 9 8 | 7 6 5 | 4 3 | 2 1 | 0 |
| ----- | ----- | ------- | ------- | - |
| elwid | VL | rs[6:5] | rd[6:5] | 0 |
| 9 8 7 6 5 | 4 3 | 2 | 1 | 0 |
| --------- | -------- | --- | --- | - |
| predicate | predtarg | end | inv | 1 |
</pre>
y'know... we _could_ take over the entire RVV opcode space, to do a
more compact way to set up the CSRs...
More information about the libre-riscv-dev
mailing list